我们有一个带有大约4K表的Oracle数据库。大约30个不同的应用程序访问数据。我们遇到一个问题,其中一个应用程序正在删除其中一个表中的行。我们不知道哪个应用程序和原因。我想弄清楚,但是,首先想到的是当删除某些东西时使用触发器并记录它,但是,有没有办法找出哪个应用程序在oracle中删除了它?
由于
答案 0 :(得分:0)
如果您不想进入自动或日志路由并且应用程序与v $ session不同,您可以通过调用
来设置应用程序的名称 dbms_application_info.set_client_info('my_application');
这会为会话设置v $ session.client_info,您可以通过
阅读dbms_application_info.read_client_info(client_info out varchar2);.
然后您可以使用触发器并记录此值。