Plsql 过程调用触发

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

我和我的团队开始着手一个遗留的Oracle DB项目。整个业务逻辑都是用PL/SQL编写的,没有任何文档

现在我们想了解所有内容,特别是调用哪些过程/函数/包。问题是,有些软件包的后缀是
\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;
        
        这将允许您定义使用哪些包。初始化部分在会话中的第一个包调用时执行一次

      • 使用系统视图检查数据库对象之间的依赖关系

      • 还有一个功能,非常强大。请参见上的示例。也许这是你最好的选择


      您可以使用DBMS\u跟踪或DBMS\u探查器来分析正在发生的事情。

      您可以使用DBMS\u跟踪或DBMS\u探查器来分析正在发生的事情。

      不,没有那样的触发器。不,没有那样的触发器。这非常有趣。我将尝试这种方法。非常感谢。这很有趣。我将尝试这种方法。非常感谢。