微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Oracle Package/Procedure/Trigger/Functions 中编写的查询

如何解决在 Oracle Package/Procedure/Trigger/Functions 中编写的查询

我想获取在 Oracle PLsql Package/Procedure/Functions/Triggers 中编写的所有查询(选择查询)。我的问题是,当这些包/过程等被执行时,那些查询保留在 Oracle 中的某处,比如在 DBA_HIST% 表或 v$sql/sqlAREA/sqlTEXT 表中。如果没有,我有什么办法可以获取它们。

任何帮助将不胜感激。

解决方法

从 12.2 开始,PL/Scope 可以收集存储的 PL/SQL 中 SQL 语句的详细信息。

如果您使用(例如)编译一个或多个(或全部)PL/SQL 程序单元:

alter session set plscope_settings='STATEMENTS:ALL';

call dbms_utility.compile_schema(user);

然后 SQL 语句将出现在 USER|ALL|DBA_STATEMENTS 视图中:

select type,object_name,object_type,line,sql_id,text
from   user_statements;
类型 OBJECT_NAME OBJECT_TYPE LINE SQL_ID 文本
插入 ADD_JOB_HISTORY 程序 10 252ppswgq6pwn INSERT INTO JOB_HISTORY (EMPLOYEE_ID,START_DATE,END_DATE,JOB_ID,DEPARTMENT_ID) VALUES(:B5,:B4,:B3,:B2,:B1 )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。