Я перехожу с SQLDeveloper на DBeaver в своей работе с базой данных Oracle 10G, у меня есть мгновенный клиент Oracle для точной версии базы данных.
Скриптов не делаю, просто куча запросов, вроде выбрать, обновить. У меня была их коллекция, каждая в одной или нескольких строках, с точкой с запятой в конце, за которой следовали два тире и комментарий. Многострочные операторы для визуального разделения, разделенные линиями с множеством тире.
SQLDeveloper хорошо относился к такой системе, CTRL + Enter выполнял только эту строку (или группу от последнего комментария или точки с запятой до следующей точки с запятой), игнорируя комментарий после или до. Поэтому я скопировал всю коллекцию из главного окна одной программы в другое (редактор SQL). Результаты использования странные.
Пример на новой вкладке редактора SQL (имена таблиц изменены, поэтому игнорируйте, если у меня есть зарезервированные слова):
select * from FILE_MOVEMENT where MOVEMENT_STATUS != 'MOVED' and LAST_UPDATE > sysdate -10 order by LAST_UPDATE desc;--My comment, explanation
select * from ACTIVITY where ACTIVITY_TYPE = 'GENERATOR' and STATUS = 'CREATED' and STARTED > sysdate -10 order by STARTED desc;--My other comment
Первый выполняется, как и ожидалось, с помощью CTRL + Enter, начало строки мигает одним треугольником, а в журнале выполнения отображается только моя команда до точки с запятой. Но когда курсор помещается во вторую строку, за которой следует CTRL + Enter, я получаю треугольники перед обеими строками, все после точки с запятой в первой строке до конца второй строки, включая оба комментария, выбираются и появляется ORA-00911. Выбранный текст отображается в журнале выполнения.
Если я поставлю между ними пустую строку, то будет выбрана и записана вся вторая строка, и появится такая же ошибка.
Что делать, чтобы остановить такое поведение и сделать так, чтобы вторая строка выполнялась так же, как первая - без предыдущего и следующего комментария? Есть ли в DBeaver настройки языка, конца строки или комментариев, которые я пропустил?