# Форматировщик PL/SQL

Форматируйте Oracle SQL и PL/SQL по правилам Oracle: альтернативное цитирование q'[...]', строки N'', идентификаторы в двойных кавычках, переменные :bind и косая черта, запускающая блок в SQL*Plus. CONNECT BY, START WITH, RETURNING и MINUS остаются отдельными предложениями, а блоки BEGIN и END с IF и LOOP получают отступы. Незакрытые строки и скобки отмечаются с указанием строки и столбца, что помогает разработчикам Oracle.

## Часто задаваемые вопросы

### Какой синтаксис Oracle распознается?

Распознаются строки в одинарных кавычках с удвоенными кавычками, альтернативное цитирование, например q'[it's]' или q'{...}', и национальные строки N''. Идентификаторы в двойных кавычках, имена с # и $, например emp#, переменные :bind и присваивания := сохраняются без изменений.

### Можно ли форматировать блоки PL/SQL?

Да. Разделы BEGIN и END, конструкции IF THEN ELSE END IF, CASE и LOOP получают отступы, а каждый оператор размещается на отдельной строке. Объявления перед BEGIN остаются отдельными операторами.

### Что происходит со строкой с косой чертой?

Строка, содержащая только /, которая запускает предыдущий блок в SQL*Plus и SQLcl, остается на отдельной строке. Она разделяет блоки до и после нее.

### Какие предложения Oracle размещаются на отдельных строках?

В иерархических запросах CONNECT BY и START WITH остаются отдельными предложениями. RETURNING и оператор объединения множеств MINUS обрабатываются так же, как стандартные предложения SELECT, FROM, WHERE, GROUP BY и ORDER BY.

### Поддерживается ли MERGE?

Да. Ветви WHEN MATCHED THEN и WHEN NOT MATCHED THEN начинаются с новых строк, поэтому операторы Oracle MERGE остаются понятными.

### Сохраняются ли комментарии?

Да. Комментарии строк -- и блочные комментарии /* block comments */ остаются на месте. Подсказки оптимизатору, например /*+ INDEX(e) */, сохраняются в точности как написаны.

### Меняется ли регистр ключевых слов?

Нет. Регистр ключевых слов и идентификаторов сохраняется. Имена Oracle без кавычек нечувствительны к регистру, а имена в кавычках — чувствительны; и те и другие остаются без изменений.

### Какие ошибки обнаруживаются?

Незакрытые строки, альтернативные кавычки, идентификаторы в кавычках и блочные комментарии, а также несбалансированные круглые скобки — для каждого указываются строка и столбец. Пакеты и грамматика не компилируются.

### Каков максимальный размер входных данных?

До 1 MB на запрос и 128 KB на оператор или блок. Большие пакеты можно форматировать частями.

### Можно ли выбрать отступы и сохраняется ли мой код?

Используйте 2 или 4 пробела либо табуляцию. Код форматируется только в памяти и никогда не сохраняется.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
