Oracle veritabanında fikir vermesi açısından örnek bir trigger paylaşmak istedim. Trigger’ın amacı; tabloya yeni kayıt insert edilmeden önce, karakter alanındaki string’in ilk harf’ini INITCAP fonksiyonu ile büyük harf yapmak. ( insert sonrası kontrol edilip, update de yapılabilir ama performans açısından hatalı bir yaklaşım olur.) Örnek kullanım için tbl_trigger_ornek isminde bir tablo oluşturdum. Insert edileceği değeri :NEW.ack ile elde edip, built-in INITCAP fonksiyonu kullanarak yeni bir değişkene attım. Devamında bu değişkeni :NEW.ack’ya yazdım.
--DROP TABLE tbl_trigger_ornek; CREATE TABLE tbl_trigger_ornek ( ack VARCHAR2(100) NOT NULL ); CREATE OR REPLACE TRIGGER trg_initcap BEFORE INSERT ON tbl_trigger_ornek FOR EACH ROW DECLARE v_initcap VARCHAR2(100); BEGIN v_initcap := initcap(:NEW.ack); :NEW.ack := v_initcap; END; INSERT INTO tbl_trigger_ornek (ack) VALUES ('new york'); INSERT INTO tbl_trigger_ornek (ack) VALUES ('ANKARA'); INSERT INTO tbl_trigger_ornek (ack) VALUES ('anTALYA'); COMMIT; SELECT * FROM tbl_trigger_ornek; /* New York Ankara Antalya */