Комментарии в конце строки в SQLPlus - PullRequest
2 голосов
/ 08 апреля 2020

Я проверил, что если я пишу комментарий после символа конца предложения (;), инструкция не запускается, но также не возникает ошибки, как если бы все строки были комментарием.

Пример:

Insert into MI_TABLA
   (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5)
 Values
   ( 311, 'TEST1', 'TEST1', 'TEST1', 1);

INSERT INTO MI_TABLA
   (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5)
VALUES
   ( 312, 'TEST2', 'TEST2', 'TEST2', 1);--Comment that ignore all the line

INSERT INTO MI_TABLA
   (FIELD1, FIELD2, FIELD3, FIELD4, FIELD5)
VALUES
   ( 313, 'TEST3', 'TEST3', 'TEST3', 1);

COMMIT;

Если я запускаю это с SQLPlus над базой данных, результатом будет то, что вставляются только TEST1 и TEST3, но нет TEST2. Но плохая новость заключается в том, что не отображаются какие-либо ошибки, а в выходных данных отображаются только 2 вставки (есть два таких сообщения: создана 1 строка и ничего более).

Есть идеи о причине этого? Есть ли способ сделать так, чтобы SQLPlus не игнорировал эту строку и работал, или, по крайней мере, он показывает какую-либо ошибку?

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Точка с запятой (;) должна быть последним символом оператора, иначе sql* plus не распознает его как таковой. Легким решением было бы поставить точку с запятой после комментария, хотя я бы предпочел поставить точку с запятой в отдельной строке.

0 голосов
/ 15 апреля 2020

После долгих испытаний и ошибок я наконец-то нашел решение своей проблемы. Я надеюсь, что это может помочь любому с такой же проблемой.

Решение было простым: написать следующую строку в первой строке скрипта или в приглашении SQL:

SET SQLBLANKLINES ON

I получить ошибку, когда предложение заканчивается комментарием после точки с запятой, а также когда точка no заканчивается точкой с запятой.

...