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
*/