Database Triggers

Pek çok veri tabanı sistemi triggerlarla çalışma imkanı sunmaktadır.Trigger kavramını veri tabanı sistemlerine farklı bir güç katmış ve programlamalı veri tabanı sistemlerinin gücünü ortaya çıkarmıştır. Özellikle DML işlemlerinde(Update,Delete,Insert) trigger çalıştırma ihtiyacı ortaya çıkar. Oracle aşağıda belirtilen başlıklar için triggerlar yazma olanağı sunar.

  • DML(Data Manuplation Language)
  • DDL (Data Definition Language):Bir şema nesnesi veya database üzerinde yapılan bir DDL işleminde.
  • Logon veya LogOff olayları
  • Server Hataları
  • Startup/Shutdown Database sırasında

Trigger'lara pek çok konuda ihtiyaç duyulabilir. Trigger yapısı Auditing işlemlerinde veya bir tabloda yapılan bir işlemin başka bir tabloya etkilerinin yapılmasında oldukça büyük kolaylıklar sağlar.

Trigger, Stored Procedure ile benzer bir yapıdadır. Oracle da bir trigger PL/SQL veya Java ile yazılabilir. İlişkili işlem gerçekleştiğinde trigger oracle tarafından otomatik işletilir hangi kullanıcının veya hangi uygulamanın bağlı olduğunun önemi yoktur.

Sözü fazla uzatmadan database trigger örneğimi yazayım.

 
CREATE OR REPLACE TRIGGER LOGOFF_AUDIT_TRIGGER
before LOGoff ON DATABASE
DECLARE
vHOSTAdi  VARCHAR2(256);
vIP  VARCHAR2(256);
BEGIN
vHOSTAdi                  := SYS_CONTEXT('USERENV','HOST', 256);
vIP             := SYS_CONTEXT('USERENV','IP_ADDRESS', 256);
INSERT INTO useraud(username,action,ip,host)VALUES(USER,'LogOFF',vIP,vHostAdi);
END;
 
    • No Related Post
bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment