else條件,我有兩個tables.They是如果在觸發器中的Oracle SQL
CARD(cardid, credit, usertype,charge)
和
PAYMENTDEVICE(paydevid, paydevip,paydevdate, paydevtime, chargedcardid, mealtype).
Mealtype可以是 '客人' 或 '標準'。我想更新卡表中的信用額度,在付款設備中插入新行時。費用取決於使用類型。但如果用餐類型是客人,每個人都必須支付5美元。我嘗試使用下面的代碼
CREATE OR REPLACE TRIGGER "TRG_PAYMONEY"
AFTER INSERT
ON PAYMENTDEVICE FOR EACH ROW
BEGIN
UPDATE CARD
WHERE CARDID = :NEW.CHARGEDCARDID
SET CREDIT =
(CASE MEALTYPE
WHEN "STANDARD" THEN CREDIT - CHARGE
WHEN "GUEST" THEN CREDIT - 5
END);
END;
,但我得到這個錯誤: PL/SQL: ORA-00971: missing SET keyword, PL/SQL: SQL Statement ignored
。請問你能幫幫我嗎?
它仍然給出了錯誤ORA-04091:表SYSTEM.PAYMENTDEVICE正在變異,觸發器/函數可能看不到它ORA-06512:在「SYSTEM.TRG_PAYMONEY1」,第2行ORA-04088:執行觸發器期間出錯'系統.TRG_PAYMONEY1' – user1422167