我使用下面的Query来保存我的表的异常
EXCEPTION
WHEN OTHERS THEN
INSERT INTO TEMP_ERR(COLUMN1)
VALUES(SQLCODE);
Run Code Online (Sandbox Code Playgroud)
上面的查询扔了
"SQL错误:ORA-00984:此处不允许列"
我试过试错了
EXCEPTION
WHEN OTHERS THEN
DECLARE m VARCHAR(255);
m:=SQLCODE;
INSERT INTO TEMP_ERR(COLUMN1)
VALUES(m);
Run Code Online (Sandbox Code Playgroud)
它起作用了.为什么?有人引导我区别吗?
这在文档中解释:
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#i3372
查看主题:"检索错误代码和错误消息:SQLCODE和SQLERRM"
您不能在SQL语句中直接使用SQLCODE或SQLERRM.相反,您必须将它们的值赋给局部变量,然后使用SQL语句中的变量,如例10-11所示.
归档时间: |
|
查看次数: |
1384 次 |
最近记录: |