Простой запрос DBeaver ORA-00911 недопустимый символ

Я перехожу с 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 настройки языка, конца строки или комментариев, которые я пропустил?


person uldics    schedule 21.01.2016    source источник
comment
У HeidiSQL аналогичное раздражающее поведение. Не могли бы вы сначала сообщить нам, что каждый запрос будет выполняться независимо, по одному?   -  person Tim Biegeleisen    schedule 21.01.2016
comment
Старайтесь не ставить комментарии после точки с запятой. Размещайте комментарии перед заявлениями. Я не знаю, как DBeaver ведет себя с ними, но я знаю по крайней мере еще один инструмент, который не может правильно выполнять такие операторы.   -  person peter.hrasko.sk    schedule 21.01.2016
comment
Первый выдаст все движения, которые не закончились, с правильным статусом и время с последним изменением статуса. Так что я вижу, есть ли движения, с которыми мне нужно что-то делать. Второй фактически такой же, но для другого типа деятельности, где созданный статус должен был быть изменен на завершенный. Так что я могу взглянуть на них.   -  person uldics    schedule 21.01.2016


Ответы (2)


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

person uldics    schedule 24.06.2016

Dbeaver использует сочетание клавиш Ctrl + Enter для выполнения одного оператора, для выполнения нескольких операторов следует использовать Alt + X.

введите здесь описание изображения

person Ahmed Soliman    schedule 01.11.2019