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