[英]How show function code from package in ORACLE?
从 package PACK 显示 function FUNCTION1 的最佳方式是什么?
DESC PACK.FUNCTION1
不起作用
说“展示”是什么意思? 您可以通过以下方式查看包体实现:
select text
from all_source a
where a.type = 'PACKAGE BODY'
and a.name = 'YOUR_PACKAGE'
order by line asc
虽然你不能以这种方式从包中提取某个函数。 您可以通过设置a.type = 'FUNCTION'
对独立函数执行相同a.type = 'FUNCTION'
。
好吧,最好的方法可能是使用类似SQLDeveloper(或TOAD)的东西,它具有模式浏览器,语法高亮等等,或者将源提取到文本文件中,您可以将这些文件放入您喜欢的编辑器中。
这两个选项都超过了查询并重新格式化USER_SOURCE中的源代码以查找函数规范。
由于DESC PACK.FUNCTION1曾经在Oracle 7上工作,所以在Oracle上很糟糕,但是他们只将它切换到DESC PACK。
可能是函数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
如果你碰巧通过 intelliJ 或 Pycharm 的 数据库工具连接,最简单的方法是通过 UI。
首先双击数据库工具中的package:
在打开的选项卡上,选择内省 package:
等待内省完成。 要么你直接看到代码,要么你需要 go 到定义/包体:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.