我正在使用下面的查询将异常保存到我的表中
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”
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.
关于oracle,sql代码,这里不允许列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35539139/