从包PACK中显示函数FUNCTION1的最佳方法是什么?
DESC PACK.FUNCTION1
不起作用
答案 0 :(得分:13)
说“展示”是什么意思? 您可以通过以下方式查看包体实现:
select text
from all_source a
where a.type = 'PACKAGE BODY'
and a.name = 'YOUR_PACKAGE'
order by line asc
虽然你不能以这种方式从包中提取某个函数。您可以通过设置a.type = 'FUNCTION'
。
答案 1 :(得分:1)
嗯,最好的方法可能是使用类似SQLDeveloper(或TOAD)的东西,它有一个模式浏览器,语法高亮等等,或者将源提取到文本文件中,然后你可以将这些文件放到你最喜欢的编辑器中。
两个选项都在USER_SOURCE中查询和重新格式化源代码,只是为了找到函数规范。
由于DESC PACK.FUNCTION1曾经在Oracle 7上工作,所以在Oracle上相当糟糕,但他们只将它切换到DESC PACK。
答案 2 :(得分:0)
可能是函数FUNCTION1确实存在于包PACK中?因为它有效。
SQL> desc dbms_output.put_line
Parameter Type Mode Default?
--------- -------- ---- --------
A VARCHAR2 IN
SQL> desc dbms_random;
Element Type
---------- ---------
SEED PROCEDURE
VALUE FUNCTION
NORMAL FUNCTION
STRING FUNCTION
INITIALIZE PROCEDURE
RANDOM FUNCTION
TERMINATE PROCEDURE
NUM_ARRAY TYPE
SQL> desc dbms_random.value
Parameter Type Mode Default?
--------- ------ ---- --------
(RESULT) NUMBER
(RESULT) NUMBER
LOW NUMBER IN
HIGH NUMBER IN