merhaba
country_code_2digit adinda bir tablom var
I_NAME, TYPE iki kolonum var
I_NAME e ülke isimleri
BULGARIA(GSM)
ROMANIA(PSTN) şeklinde giriliyor
TYPE kısmında ise GSM yada PSTN bilgisi bulunması gerekiyor.
I_NAME kolonuna BULGARIA(GSM) girilince TYPE kısmını otomatik GSM
BULGARIA(PSTN) girilince TYPE kısmını otomatik PSTN
verisi girecek bir trigger yazmak istiyorum. Bunun için
create or replace trigger cc2digit_bir
before insert or update on country_code_2digit
referencing old as old new as new
begin
if :new.i_name like '%(PSTN)' then :new.type := 'PSTN';
else if :new.i_name like '%(GSM)' then :new.type := 'GSM';
end if;
end;
şeklinde yazdim ancak bunu TOAD da create edemiyorum çünkü
:new için variables penceresini açıyor. benden bir değişken girmemi bekliyor.
Bu olayi nasil çözebilirim. Triggeri nasil create edebilirim?
Triggerim hataliysa nasil düzeltebilirim?
kolay gelsin iyi günler...
oracle trigger
oracle trigger
Boş Başak Dik Durur...
Santranç bitince şah da piyon da aynı torbaya girermiş...
Santranç bitince şah da piyon da aynı torbaya girermiş...
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam
TOAD da iki mod vardır. Birisi script (F5) birisi de grid (Shift-F9).. F5 e basacaksınız.. Ayrıca aşağıdaki gibi bir kod yazarsanız yeni iletişim altyapıları geldiğinde kodu değiştirmeniz gerekmez. Aslında veritabanı tasarımı açısından şebeke diye bir tabloda da bununmasında yarar var aslında bu kodun ve bir goreign key ile bağlanmalı. Ama uğraşamam derseniz bilemem....
işinizi görecektir.
Kolay gelsin...
TOAD da iki mod vardır. Birisi script (F5) birisi de grid (Shift-F9).. F5 e basacaksınız.. Ayrıca aşağıdaki gibi bir kod yazarsanız yeni iletişim altyapıları geldiğinde kodu değiştirmeniz gerekmez. Aslında veritabanı tasarımı açısından şebeke diye bir tabloda da bununmasında yarar var aslında bu kodun ve bir goreign key ile bağlanmalı. Ama uğraşamam derseniz bilemem....
Kod: Tümünü seç
CREATE OR REPLACE TRIGGER cc2digit_bir
BEFORE INSERT OR UPDATE
ON country_code_2digit
REFERENCING OLD AS OLD NEW AS NEW
DECLARE
nwidth NUMBER;
BEGIN
nwidth := INSTR (:NEW.i_name, ')') - INSTR (:NEW.i_name, '(') - 1;
IF NVL (nwidth, 0) > 0
THEN
:NEW.TYPE := SUBSTR (:NEW.i_name, INSTR (:NEW.i_name, '(') + 1, nwidth);
END IF;
END;
Kolay gelsin...
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
CREATE OR REPLACE TRIGGER cc2digit_bir
BEFORE INSERT OR UPDATE
ON country_code_2digit
REFERENCING OLD AS OLD NEW AS NEW
for each row
DECLARE
nwidth NUMBER;
BEGIN
nwidth := INSTR (:NEW.i_name, ')') - INSTR (:NEW.i_name, '(') - 1;
IF NVL (nwidth, 0) > 0
THEN
:NEW.TYPE := SUBSTR (:NEW.i_name, INSTR (:NEW.i_name, '(') + 1, nwidth);
END IF;
END;
for each row satırı eklenmeliymiş...
BEFORE INSERT OR UPDATE
ON country_code_2digit
REFERENCING OLD AS OLD NEW AS NEW
for each row
DECLARE
nwidth NUMBER;
BEGIN
nwidth := INSTR (:NEW.i_name, ')') - INSTR (:NEW.i_name, '(') - 1;
IF NVL (nwidth, 0) > 0
THEN
:NEW.TYPE := SUBSTR (:NEW.i_name, INSTR (:NEW.i_name, '(') + 1, nwidth);
END IF;
END;
for each row satırı eklenmeliymiş...
Boş Başak Dik Durur...
Santranç bitince şah da piyon da aynı torbaya girermiş...
Santranç bitince şah da piyon da aynı torbaya girermiş...