我试图通过这样做从sqlplus获取包规范和正文。
select text from all_source
where name = 'PACK_JACK'
order by line;
但我只是得到它的身体而不是规格..我必须改变以将它们两个作为一个文件..谢谢
答案 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表中隐藏了。