Plsql 过程调用触发
我和我的团队开始着手一个遗留的Oracle DB项目。整个业务逻辑都是用PL/SQL编写的,没有任何文档 现在我们想了解所有内容,特别是调用哪些过程/函数/包。问题是,有些软件包的后缀是Plsql 过程调用触发,plsql,oracle11g,Plsql,Oracle11g,我和我的团队开始着手一个遗留的Oracle DB项目。整个业务逻辑都是用PL/SQL编写的,没有任何文档 现在我们想了解所有内容,特别是调用哪些过程/函数/包。问题是,有些软件包的后缀是\u v1,\u v2,\u v1\u org,\u v2\u new,我们不知道它们中的哪一个真正在使用 我们不想通过在每个函数或过程的开头添加日志语句来改变一切 是否有某种触发器在函数调用时触发 例如调用此代码 CREATE OR REPLACE FUNCTION helloWorld AS BEGIN
\u v1
,\u v2
,\u v1\u org
,\u v2\u new
,我们不知道它们中的哪一个真正在使用
我们不想通过在每个函数或过程的开头添加日志语句来改变一切
是否有某种触发器在函数调用时触发
例如调用此代码
CREATE OR REPLACE FUNCTION helloWorld AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello world!');
END;
将输出如下内容(行顺序无关)
问题相当广泛。在你的位置上,我将从以下几点开始:
- 确定输入点(如果可能):从数据库客户端应用程序调用哪些过程/函数/包
- 将初始化部分添加到包中:
这将允许您定义使用哪些包。初始化部分在会话中的第一个包调用时执行一次create or replace package body my_package as ... -- add this after all functions, procedures, etc: begin dbms_output.put_line('Package my_package is initialised'); end;
- 使用系统视图检查数据库对象之间的依赖关系
- 还有一个功能,非常强大。请参见上的示例。也许这是你最好的选择
- 确定输入点(如果可能):从数据库客户端应用程序调用哪些过程/函数/包
- 将初始化部分添加到包中:
这将允许您定义使用哪些包。初始化部分在会话中的第一个包调用时执行一次create or replace package body my_package as ... -- add this after all functions, procedures, etc: begin dbms_output.put_line('Package my_package is initialised'); end;
- 使用系统视图检查数据库对象之间的依赖关系
- 还有一个功能,非常强大。请参见上的示例。也许这是你最好的选择
- 这个问题相当广泛。在你的位置上,我将从以下几点开始: