SqlPlus查询问题(Package Spec和Body)

时间:2011-08-08 18:10:12

标签: oracle package sqlplus

我试图通过这样做从sqlplus获取包规范和正文。

select text from all_source
where name = 'PACK_JACK'
order by line;

但我只是得到它的身体而不是规格..我必须改变以将它们两个作为一个文件..谢谢

2 个答案:

答案 0 :(得分:7)

all_source视图中有一个TYPE列。该类型可以有2个值 - 'PACKAGE'和'PACKAGE BODY'。所以要获得规范,

select text from all_source
where name = 'PACK_JACK'
and type = 'PACKAGE'
order by line;

并获得身体

select text from all_source
where name = 'PACK_JACK'
and type = 'PACKAGE BODY'
order by line;

此外,您可以使用user_source,而不是使用all_source。 all_source包括一切,包括系统包。 USER_SOURCE只有用户定义的包。

答案 1 :(得分:3)

要获取包体,请运行:

select text from all_source
where name = 'PACK_JACK'
  and type = 'PACKAGE BODY'
order by line;

相反:

select text from all_source
where name = 'PACK_JACK'
  and type = 'PACKAGE'
order by line;

但是你很可能没有权利看到包体。所以它在ALL_SOURCE表中隐藏了。