在oracle中有没有办法看到程序的结构是什么?我正在尝试记录并正在运行过程,并希望将实际的过程结构存储在我的日志中.
Jus*_*ave 19
你可以查询ALL_SOURCE表格
SELECT text
FROM all_source
WHERE owner = <<owner of procedure>>
AND name = <<name of procedure>>
ORDER BY line
Run Code Online (Sandbox Code Playgroud)
如果您正在处理包内的过程
SELECT text
FROM all_source
WHERE owner = <<owner of procedure>>
AND name = <<name of procedure>>
AND type = 'PACKAGE BODY'
ORDER BY line
Run Code Online (Sandbox Code Playgroud)
将为您提供包体的文本.您还可以使用TYPE"PACKAGE" 获取包规范的文本
SELECT TEXT, LINE FROM ALL_SOURCE WHERE
NAME = UPPER('$name') -- the table also has an owner field to track the user
ORDER BY TYPE, -- type is generally procedure, but there are functions and
-- more complex structures as well, such as PACKAGE
TO_NUMBER( LINE )
Run Code Online (Sandbox Code Playgroud)
dbms_metadata 包,get_ddl 函数,也许?
SELECT dbms_metadata.get_ddl('PROCEDURE','<yourproc>','<schema>') FROM dual;
Run Code Online (Sandbox Code Playgroud)