線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:765
推到 Plurk!
推到 Facebook!

請教Trigger的問題,因執行上一直有Error產生

尚未結案
turtile
一般會員


發表:3
回覆:3
積分:1
註冊:2004-09-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-16 10:06:08 IP:220.130.xxx.xxx 未訂閱
各位大大: 最近要寫Trigger,參考了粉多文章,But在Run的時候卻會出現"ORA-0471遺失Before,after或Instead of 關鍵字' 的錯誤訊息,可否請各位大大指教一下. 我目的是當IT_Test_NPLOT中的LotID有異動時且LOTID的前2碼為CN時,就自動把異動的值直接UPDATE到 IT_TMP_NPLOT中.. 我的語法如下: CREATE TRIGGER IT_NPTrigger ON IT_Test_NPLOT FOR INSERT, UPDATE AS BEGIN IF UPDATE(slotid) update IT_Tmp_NPLOT set slotid=slotid where substr(slotid,1,2) = 'CN' END
julian
一般會員


發表:3
回覆:10
積分:7
註冊:2002-07-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-16 18:40:29 IP:61.218.xxx.xxx 未訂閱
CREATE TRIGGER tr_IT_Test_NPLOT_u ON IT_Test_NPLOT FOR INSERT, UPDATE AS BEGIN IF UPDATE(slotid) update IT_Tmp_NPLOT set slotid=slotid from inserted where substring(slotid,1,2) = 'CN' END
julian
一般會員


發表:3
回覆:10
積分:7
註冊:2002-07-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-16 19:02:45 IP:61.218.xxx.xxx 未訂閱
對不起忘記更你說了 Trigger 是用 inserted 和 deleted 來運用的 就用上面的方式用 已原本的程式看阿 會update 所以的資料 所以我只寫 她的用法何以 條件要下嚴謹一點
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-16 22:33:38 IP:218.32.xxx.xxx 未訂閱
turtile 你好:    不知有否誤會你的意思, 試試看:    
CREATE or REPLACE TRIGGER IT_NPTrigger
AFTER Insert or Update -- 觸動時機
ON IT_Test_NPLOT
for each row -- 每一筆都觸動
BEGIN
  IF (substr(:NEW.slotid,1,2) = 'CN') -- LOTID的新值前2碼為CN時
  then
    update IT_Tmp_NPLOT set slotid=:NEW.slotid 
    where substr(slotid,1,2) = 'CN';
  END IF;
END;
PS. 你原來所附之 SQL Code, 應該不是 PL/SQL(Oracle), 應是...Transact-SQL(MSSQL/Sybase)吧.
系統時間:2024-06-29 8:34:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!