System Triggers

Published on by LakshmiSaahul,Dhana Royal

System Triggers

The syntax for creating a system trigger is very similar to the syntax used for creating DML trigger

SQL> CREATE TABLE session_info
  2  (username VARCHAR2(30),
  3  logon_date DATE,
  4  session_id VARCHAR2(30),
  5  ip_addr VARCHAR2(30),
  6  hostname VARCHAR2(30),
  7  auth_type VARCHAR2(30));

Table created.

Here is the code for the BEFORE LOGOFF trigger:

SQL> CREATE OR REPLACE TRIGGER trg_session_info
  2  BEFORE LOGOFF
  3  ON DATABASE
  4  DECLARE
  5   session_id VARCHAR2(30);
  6   ip_addr    VARCHAR2(30);
  7   hostname   VARCHAR2(30);
  8   auth_type  VARCHAR2(30);
  9  BEGIN
 10   SELECT sys_context ('USERENV', 'SESSIONID')
 11   INTO session_id
 12   FROM dual;
 13  
 14   SELECT sys_context ('USERENV', 'IP_ADDRESS')
 15   INTO ip_addr
 16   FROM dual;
 17   
 18   SELECT sys_context ('USERENV', 'HOST')
 19   INTO hostname
 20   FROM dual;
 21   
 22   SELECT sys_context ('USERENV', 'AUTHENTICATION_TYPE')
 23   INTO auth_type
 24   FROM dual;
 25   
 26   INSERT INTO session_info VALUES
 27   (user, sysdate, session_id, ip_addr, hostname, auth_type);
 28  END;
 29  /
Advertising
To be informed of the latest articles, subscribe:
Comment on this post