假设我有一个名为“user”的表。我有一个触发器,它在插入“用户”表时触发。 有没有办法获取触发器内部插入的事务ID?
您可以使用该功能 dbms_transaction.local_transaction_id
这是一个例子:(取自here)
SELECT dbms_transaction.local_transaction_id
FROM dual;
CREATE TABLE t (
testcol NUMBER(3));
INSERT INTO t
VALUES (1);
SELECT dbms_transaction.local_transaction_id
FROM dual;
CREATE OR REPLACE FUNCTION atf RETURN VARCHAR2 IS
PRAGMA AUTONOMOUS_TRANSACTION;
x VARCHAR2(20);
BEGIN
INSERT INTO t
(testcol)
VALUES
(2);
x := dbms_transaction.local_transaction_id;
COMMIT;
RETURN x;
END atf;
/
set serveroutput on
DECLARE
x VARCHAR2(20);
BEGIN
x := atf;
dbms_output.put_line(x);
INSERT INTO t VALUES (3);
x := dbms_transaction.local_transaction_id;
dbms_output.put_line(x);
COMMIT;
END;
/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6668 次 |
| 最近记录: |