как я могу обработать блок исключения ошибки ORA-00917 - PullRequest
0 голосов
/ 11 октября 2018

Создали таблицу x с двумя столбцами x и именем.Написал анонимный блок, чтобы перехватывать ошибки при вставке данных в table.but я не могу обработать ошибку 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;

Я получаю сообщение об ошибке, которое отображается непосредственно вместо сообщения об отсутствии запятой или другой ошибке

1 Ответ

0 голосов
/ 11 октября 2018

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']' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...