Как выполнить «текущий» запрос в Oracle sql developer worksheet, не выделяя и не требуя ; terminator

#oracle-sqldeveloper

#oracle-sqldeveloper

Вопрос:

В настоящее время мне нужно либо выбрать запрос, выделив его, либо использовать ; разделитель. Основываясь на моих исследованиях, кажется, мне нужно установить sqlterminator false. Однако в Oracle 11g я получаю следующую ошибку:

 "set SQLTERMINATOR off" is Obsolete.
  

Комментарии:

1. Что плохого в использовании ; ?

2. Я использовал другие инструменты, такие как toad, у которых нет такого требования. Итак, я немного застрял в этой привычке.

Ответ №1:

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

Точки с запятой — это здорово, и я настоятельно рекомендую использовать их для завершения всех ваших запросов Oracle.

Комментарии:

1. Не согласен. Почему нельзя использовать символ новой строки для различения нескольких запросов, как это делает toad?

2. Все языки программирования имеют line terminator и упорно применяют правила синтаксиса. Не слишком ли много я прошу? (Символ новой строки — это пробел, который игнорируется синтаксическим анализатором).

3. Для той же базы данных (oracle) toad позволяет использовать символ новой строки в качестве разделителя. Я пытаюсь использовать аналогичное поведение из другого инструмента pl sql developer.