aynı tablodaki bir alandan başka bir alanı update triger

Oracle veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
baypipox
Üye
Mesajlar: 122
Kayıt: 16 Eki 2006 04:23
İletişim:

aynı tablodaki bir alandan başka bir alanı update triger

Mesaj gönderen baypipox »

Merhaba arkadaşlar;
Triger aşağıdaki gibi, sorunum şu, tarih2 alanı update yapıldığında yeni tarihin 20 dakika gerisini, tarih3 alanına atmak istiyorum. Fakat anladığım kadarıyla tarih2 alanı commit olamadığı için, triger çalışamıyo, ama yeni bir kayıtta denediğimde, bir önceki kayıtda gidip unu düzgünce update yapıyo. Sıkıntımı umarım anlatabilmişimdir. VT: oracle
not: pragma olmadan aynı tablodaki bir alandan başka bir alanı update edemiyordum, onun için ekledim..

Kod: Tümünü seç

CREATE OR REPLACE TRIGGER Istek_Main AFTER UPDATE OF TARIH2
ON ISTEKMAIN FOR EACH ROW
declare
pragma autonomous_transaction;
--TARIH2 date;
BEGIN
IF :NEW.TARIH2 <>'' THEN
UPDATE ISTEKMAIN LB SET LB.tarih3 = :NEW.TARIH2 - ((select dbms_random.value(20,20) from dual)*1/1440)
WHERE LB.LAB=1 AND LB.ID>0 and :new.ISTEK_NO = :old.ISTEK_NO;
COMMIT;
END IF;
END;
Kullanıcı avatarı
baypipox
Üye
Mesajlar: 122
Kayıt: 16 Eki 2006 04:23
İletişim:

Re: aynı tablodaki bir alandan başka bir alanı update triger

Mesaj gönderen baypipox »

Düşündük, taşındık, accıkda kaşındık sonunda 'biz niye update yapıyoz yaa' dedik...

Sorunu aşağıdaki gibi çözdük;

Kod: Tümünü seç

CREATE OR REPLACE TRIGGER Istek_Main AFTER UPDATE
OF TARIH2
ON ISTEKMAIN FOR EACH ROW
declare
BEGIN
  :NEW.TARIH3:= :NEW.TARIH2-(20*1/1440);
END;

mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: aynı tablodaki bir alandan başka bir alanı update triger

Mesaj gönderen mkysoft »

mantıklı :)
Cevapla