我收到以下錯誤。不知道爲什麼會出現這個錯誤。請建議:編譯觸發時表達式是錯誤類型的錯誤消息
SQL> CREATE OR REPLACE TRIGGER test_trigger
2
3 BEFORE INSERT OR UPDATE OF DRIVER_NUM
4
5 ON test_driver FOR EACH ROW
7 DECLARE
8
9 Invalid_Number EXCEPTION;
10
11 PRAGMA EXCEPTION_INIT(Invalid_Number , -01722);
12
13 BEGIN
14
15 IF TO_NUMBER(:NEW.DRIVER_NUM) THEN
16
17 :NEW.DRIVER_NUM := TO_NUMBER(:NEW.DRIVER_NUM) ;
18
19 END IF;
20
21 EXCEPTION
22
23 WHEN Invalid_Number THEN
24
25 :NEW.DRIVER_NUM := NULL;
26
27 END;
/
28
Warning: Trigger created with compilation errors.
SQL> show errors
Errors for TRIGGER TEST_TRIGGER:
LINE/COL ERROR
-------- -----------------------------------------------------------------
9/2 PL/SQL: Statement ignored
9/5 PLS-00382: expression is of wrong type
我的要求是,以檢查屬性DRIVER_NUM不是一個數字,如果在我的觸發插入之前使null分配給它。 DRIVER_NUM是一個NUMBER.I想要在我的觸發器中捕獲sql錯誤-01722(無效數字)並將其設置爲空。 – arpita 2011-06-01 10:47:14