我在特定表上有一个删除触发器,如下所示。执行触发器时,似乎只提供使用old.columnName
修改的列的值。如何获取其他列的值以便我可以在另一个表中插入所有需要的列值?
以下是触发器:
create or replace TRIGGER AUDIT_TRIGGER
AFTER DELETE ON TABLE_T2
FOR EACH ROW
DECLARE
FILE_HANDLER UTL_FILE.FILE_TYPE;
BEGIN
FILE_HANDLER := UTL_FILE.FOPEN('Test_Dir','trigger_log_file_delete.txt','w');
UTL_FILE.PUT(FILE_HANDLER, '----START LOG---- '||+CHR(10));
UTL_FILE.PUT(FILE_HANDLER,to_char(sysdate,'YYYY/MM/DD:HH:MI:SSAM')||+CHR(10));
UTL_FILE.PUT(FILE_HANDLER, ':OLD.OBJECT_ID = '||:OLD.OBJECT_ID||+CHR(10));
UTL_FILE.PUT(FILE_HANDLER, ':OLD.PRIMARY_KEY = '||:OLD.PRIMARY_KEY||+CHR(10));
UTL_FILE.PUT(FILE_HANDLER, '----END LOG---- '||+CHR(10));
UTL_FILE.FCLOSE(FILE_HANDLER);
END;
以下是我要打印的文件的内容:
----START LOG----
2017/11/23:08:27:49PM
:OLD.OBJECT_ID =
:OLD.PRIMARY_KEY = 46
----END LOG----
在输出中,虽然我得到了已删除行的OBJECT_ID
,但我无法获得PRIMARY_KEY
。我知道OBJECT_ID
具有价值。请让我知道如何获取其他列的值。