1
"user"라는 테이블이 있다고 가정 해 봅시다. "사용자"테이블에 삽입 할 때 발생하는 트리거가 있습니다. 삽입의 트랜잭션 ID를 트리거 내부에서 가져 오는 방법이 있습니까?트리거를 발생시킨 트랜잭션의 Oracle 트랜잭션 ID
"user"라는 테이블이 있다고 가정 해 봅시다. "사용자"테이블에 삽입 할 때 발생하는 트리거가 있습니다. 삽입의 트랜잭션 ID를 트리거 내부에서 가져 오는 방법이 있습니까?트리거를 발생시킨 트랜잭션의 Oracle 트랜잭션 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;
/
덕분에, 나는 그것을 시도 줄 것입니다. –