保存程序包主体和规范

时间:2019-05-17 13:35:10

标签: oracle oracle-sqldeveloper

使用SQLDeveloper工具并尝试使用功能-“保存程序包主体和规范”,以便在单个文件中创建包含程序包主体和规范内容的导出文件。但是在执行此操作时,将使用空白或空内容创建文件。要做一些设置以使之成为可能吗?

-

我希望导出功能正常工作

1 个答案:

答案 0 :(得分:2)

我们运行两个查询以使这种“神奇”发生。

如果您是高度私有用户,可以访问DBA_视图,我们将运行它(比ALL_视图要快得多)

SELECT 'CREATE OR REPLACE ' || text source,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line = 1
   AND type = 'PACKAGE'
UNION ALL
SELECT text,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line != 1
   AND type = 'PACKAGE'
 ORDER BY line

然后运行此命令:

SELECT 'CREATE OR REPLACE ' || text source,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line = 1
   AND type = 'PACKAGE BODY'
UNION ALL
SELECT text,
       line
  FROM dba_source
 WHERE owner = :owner
   AND name = :name
   AND line != 1
   AND type = 'PACKAGE BODY'
 ORDER BY line

生成的文件的SPEC带有CREATE或REPLACE代码,后跟'/',然后对BODY相同。

如果您的用户的privs较少,我们将使用与ALL_视图基本相同的查询。

您是根据自己的模式还是他人的模式生成代码?

您正在使用哪个版本的SQL Developer和Oracle?

尝试下面的查询,看看会得到什么。

通过观察“查看-日志”面板和“语句”部分,您可以了解我们为自己所做的事情:

enter image description here