我使用下面的Query来保存我的表的异常
EXCEPTION WHEN OTHERS THEN INSERT INTO TEMP_ERR(COLUMN1) VALUES(sqlCODE);
上面的查询扔了
“sql Error: ORA-00984: column not allowed here”
我试过试错了
EXCEPTION WHEN OTHERS THEN DECLARE m VARCHAR(255); m:=sqlCODE; INSERT INTO TEMP_ERR(COLUMN1) VALUES(m);
它起作用了.为什么?有人引导我区别吗?
解决方法
这在文档中解释:
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#i3372
看到一个主题:“检索错误代码和错误消息:sqlCODE和sqlERRM”
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#i3372
看到一个主题:“检索错误代码和错误消息:sqlCODE和sqlERRM”
You cannot use sqlCODE or sqlERRM directly in a sql statement. Instead,you must assign their values to local variables,then use the variables in the sql statement,as shown in Example 10-11.