2016-12-13 54 views
-1

我做了一個觸發器,當插入襯衫號碼驗證它是否已經存在於數據庫中時,我還做了一個叫做'VERIFYSHIRT'的觸發器調用的函數。編譯時,我收到了一個Oracle SQL PLS-00049:錯誤的綁定變量ERROR。我幾乎可以肯定,代碼是正確的,但不知道我在做什麼錯。如果你們想要,我也可以把這個功能放在這裏,在此先感謝,或者任何需要的桌子!Oracle SQL PLS-00049:壞綁定變量錯誤

CREATE OR REPLACE TRIGGER SHIRT_NUMBER 
    BEFORE INSERT OR UPDATE ON Player 
    FOR EACH ROW 

     DECLARE 
     shirtNumber NUMBER; 
    BEGIN 
     shirtNumber := VERIFYSHIRT(:NEW.CLUB_CLUBID,:NEW.PLAYER_SHIRTNUMBER); 

     if shirtNumber > 0 THEN 
     RAISE_APPLICATION_ERROR(-20000, 'Shirt number already exists!'); 
     NULL; 
    END IF; 
    END; 
+0

您確定需要觸發器嗎?觸發器應該做什麼?請發佈一個觸發器應避免創建什麼樣的數據的示例 – Aleksej

+0

如果您在存儲「shirtNumber」數據的列上創建唯一索引,那麼這樣做不會達到同樣的效果,並且不需要「 SHIRT_NUMBER'觸發器和'VERIFYSHIRT'函數? – MJH

回答