我正在嘗試創建一個觸發器,允許輸入具有小 - 大尺寸的衣物,但觸發器將根據插入將大小更改爲SM或L 。創建更新觸發器時出現變量名稱錯誤
我在我的if語句中遇到了錯誤的綁定變量錯誤,我不確定爲什麼,因爲它與我的Products表中的列名相同。
Products表:
CREATE TABLE "user"."PRODUCTS"
( "PID" NUMBER(6,0),
"PRODUCT_NAME" VARCHAR2(255 BYTE),
"QUANTITY" NUMBER,
"PRODUCT_SIZE" VARCHAR2(255 BYTE),
"PRODUCT_VALUE" NUMBER,
PRIMARY KEY ("PID")
大小觸發:
create or replace TRIGGER sizeTrigger
BEFORE INSERT OR UPDATE
ON PRODUCTS
BEGIN
--smalls--
IF :NEW.product_size = 's' THEN
::NEW.PRODUCT_SIZE := 'S';
elsif ::NEW.PRODUCT_SIZE = 'S' THEN
::NEW.product_size := 'S';
elsif ::NEW.PRODUCT_SIZE = 'small'THEN
::NEW.product_size := 'S';
elsif ::NEW.PRODUCT_SIZE = 'SMALL' THEN
::NEW.product_size := 'S';
--MEDIUM--
elsif ::NEW.PRODUCT_SIZE = 'm' THEN
::NEW.product_size := 'M';
elsif ::NEW.PRODUCT_SIZE = 'm' THEN
::NEW.product_size := 'M';
elsif ::NEW.PRODUCT_SIZE = 'medium' THEN
::NEW.product_size := 'M';
elsif ::NEW.PRODUCT_SIZE = 'MEDIUM' THEN
::NEW.product_size := 'M';
--large
elsif ::NEW.PRODUCT_SIZE = 'l' THEN
::NEW.product_size := 'L';
elsif ::NEW.PRODUCT_SIZE = 'L' THEN
::NEW.product_size := 'L';
elsif ::NEW.PRODUCT_SIZE = 'large' THEN
::NEW.product_size := 'L';
elsif ::NEW.PRODUCT_SIZE = 'LARGE' THEN
::NEW.product_size := 'L';
else
raise exception_error;
END IF;
EXCEPTION
WHEN exception_error THEN
DBMS_OUTPUT.PUT_LINE('Size must be "s,m,l,small, medium, large");
END;
擺脫列定義周圍的所有雙引號。 – OldProgrammer