Liquibase возвращает ORA-00907 с SQL-кодом, используя нотацию комментариев Oracle (двойная черта) - PullRequest
0 голосов
/ 16 января 2019

Запуск SQL на Oracle через Liquibase и получение ошибки:

ORA-00907: отсутствует правая скобка

SQL, который мы запускаем, имеет двойные черты --, которые также могут представлять комментарии в PLSQL. Я предполагаю, что это проблема. Нужно ли как-нибудь избежать этого?

delete from mytable B where B.NAME in ('XXX--YYY', 'AAA--BBB');

1 Ответ

0 голосов
/ 16 января 2019

Последовательность символов -- скорее всего интерпретируется как комментарий, поэтому следующие символы до конца строки игнорируются.

Вы можете использовать следующий обходной путь, простое разбиение строки на две части

Вместо

'XXX--YYY'

использование

'XXX-'||'-YYY' 

Не забывайте, если у вас есть еще тире, вы должны повторить этот шаг, например, для --- вы должны разбить строку на три части.

Возможная аналогичная проблема была бы для строки, содержащей многострочный комментарий:

'XXX/*YYY', 'XXX*/YYY'
...