Plsql 带触发器的存储过程oracle 11g

Plsql 带触发器的存储过程oracle 11g,plsql,oracle11g,Plsql,Oracle11g,我有一个存储过程,由4个不同的触发器调用 在执行过程时是否可能获取触发器的信息,如名称 我可以通过向过程传递一个额外的参数来实现, 还有其他选择吗? 我正在使用Oracle11g。 谢谢如果您的触发器被称为My_触发器,您可以尝试以下操作: SELECT Trigger_type, Triggering_event, Table_name FROM USER_TRIGGERS WHERE Trigger_name = 'My_Trigger'; 如果您的触发器名为My_trigge

我有一个存储过程,由4个不同的触发器调用 在执行过程时是否可能获取触发器的信息,如名称

我可以通过向过程传递一个额外的参数来实现, 还有其他选择吗? 我正在使用Oracle11g。
谢谢

如果您的触发器被称为My_触发器,您可以尝试以下操作:

SELECT Trigger_type, Triggering_event, Table_name
   FROM USER_TRIGGERS
   WHERE Trigger_name = 'My_Trigger';

如果您的触发器名为My_trigger,您可以尝试以下操作:

SELECT Trigger_type, Triggering_event, Table_name
   FROM USER_TRIGGERS
   WHERE Trigger_name = 'My_Trigger';

您可以使用函数
dbms\u实用程序。format\u call\u stack
,该函数记录如下:


您可以使用函数
dbms\u实用程序。format\u call\u stack
,该函数记录如下:


您可以向过程中添加一个附加参数来传递此触发器名称。不幸的是,触发器显然不会出现在堆栈回溯中。请参见如何获取stacktrace,但在我的测试中,触发器名称不包括在内。您可以向过程中添加一个附加参数以传递此触发器名称。不幸的是,触发器显然不会出现在堆栈回溯中。查看如何获取stacktrace,但在我的测试中,触发器名称不包括在内。解决了我的问题,谢谢@marco baldelli的详细回答解决了我的问题,谢谢@marco baldelli的详细回答