: PL/SQL.
, , , :
CREATE TABLE statement_tracker
( SID NUMBER
, serial
, date_run DATE
, program VARCHAR2(48) null
, module VARCHAR2(48) null
, machine VARCHAR2(64) null
, osuser VARCHAR2(30) null
, sql_text CLOB null
, program_id number
);
CREATE OR REPLACE TRIGGER smb_t_t
AFTER UPDATE
ON smb_test
BEGIN
INSERT
INTO statement_tracker
SELECT ss.SID
, ss.serial
, sysdate
, ss.program
, ss.module
, ss.machine
, ss.osuser
, sq.sql_fulltext
, sq.program_id
FROM v$session ss
, v$sql sq
WHERE ss.sql_address = sq.address
AND ss.SID = USERENV('sid');
END;
/
, SYS:
grant select on V_$SESSION to <user>;
grant select on V_$SQL to <user>;
, insert , , , , - (1 ), . , , : . , , v $sql, SQL_ADDRESS, DBMS_JOB, sql_text , .
, . , , - - , , , . program_id. , program_id object_id - :
SELECT * FROM all_objects where object_id = <program_id>;
, , , program_id, - "program" statement_tracker. PL/SQL, - .
, , osuser/machine/program/module , .