已创建具有两列x和名称的表x。 已经写了一个匿名块来在表中插入数据时捕获错误。但是即使我在异常中提到了它,并且也编写了其他异常部分,我也无法处理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;
我直接显示错误,而不是消息缺少逗号或其他错误
答案 0 :(得分:0)
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']' );