[英]Creating Oracle SQL Trigger Error
這是我需要完成的任務:創建一個名為tgr_customer_insert的TRIGGER,該觸發器將在客戶表中插入一行后觸發。 可以在創建持卡人表之后創建觸發器,因此觸發器可以位於剛創建的同一ps16a.sql文件中。 當將行插入到temp_table_customers表中時,此觸發器將在持卡人表中插入一行。 以下是要插入的列:card_number(使用seq_cardholder序列號插入)customer_id(這是使用:new.column_name語法的temp_table_customer表的綁定變量)credit_limit(這是使用temp_table_customer表的綁定變量) :new.column_name語法)
這是我的代碼:
`CREATE OR REPLACE TRIGGER tgr_customer_insert
AFTER INSERT
ON customers
FOR EACH ROW
BEGIN
-- Insert record into customers table
INSERT INTO cardholder
( card_number,
customer_id,
credit_limit
)
VALUES
( new.seq_cardholder,
:new.customer_id,
:new.credit_limit
);
END;
`
錯誤是:ORA-24344:成功,編譯錯誤第3行位置4。
頭發被撕掉了。 預先感謝您抽出寶貴的時間處理此事。
我認為您在INSERT VALUES中缺少第一個值綁定的“:”。
CREATE OR REPLACE TRIGGER tgr_customer_insert
AFTER INSERT
ON customers
FOR EACH ROW
BEGIN
-- Insert record into customers table
INSERT INTO cardholder
( card_number,
customer_id,
credit_limit
)
VALUES
( :new.seq_cardholder,
:new.customer_id,
:new.credit_limit
);
END;
如果“ seq_cardholder”是一個序列,則必須使用以下方法:
CREATE OR REPLACE TRIGGER tgr_customer_insert
AFTER INSERT
ON customers
FOR EACH ROW
BEGIN
-- Insert record into customers table
INSERT INTO cardholder
( card_number,
customer_id,
credit_limit
)
VALUES
( seq_cardholder.nextval,
:new.customer_id,
:new.credit_limit
);
END;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.