创建了具有两列 x 和名称的表 x。 编写了一个匿名块以在表中插入数据时捕获错误,但是即使我在异常中提到了ORA-00917错误并且还编写了其他异常部分,我也无法处理ORA-00917错误。
CREATE TABLE X
( X NUMBER NOT NULL ENABLE,
NAME VARCHAR2(100));
代码
SET SERVEROUTPUT ON;
DECLARE
EXCEPTION_HANDLE6 EXCEPTION;
pragma exception_init(EXCEPTION_HANDLE6, -00917);
BEGIN
insert into x values ('2','GOVIND NAGAR 'C'BLK KANPUR' );
EXCEPTION
WHEN EXCEPTION_HANDLE6 THEN
dbms_output.put_line('MISSING COMMA');
WHEN others THEN
dbms_output.put_line('other error ');
END;
我直接显示错误,而不是消息缺少逗号或其他错误
ORA-00917:缺少逗号
我相信你说的是INSERT
语句(无论如何看起来是错误的,因为单引号写错了(:
insert into x values ('2','GOVIND NAGAR 'C'BLK KANPUR' );
事实是:你的代码不会编译,你得到的错误是在编译,而不是执行(运行时(,所以你不能那样处理它。必须先修复错误,然后运行代码。
应该是
insert into x values ('2','GOVIND NAGAR ''C''BLK KANPUR' );
(注意两个单引号(,或
insert into x values ('2',q'['GOVIND NAGAR 'C'BLK KANPUR']' );