Форматировщик Db2
Форматируйте IBM Db2 SQL для Db2 for LUW и Db2 for z/OS по правилам Db2 для литералов X'', G'' и N'', идентификаторов в двойных кавычках и имён с символами #, @ и $. FETCH FIRST n ROWS ONLY размещается на отдельной строке, предложения изоляции, например WITH UR, остаются в строке запроса, а ветви MERGE начинаются с новой строки. Для разработчиков баз данных и администраторов БД незакрытые строки и скобки отмечаются с указанием строки и столбца.
Часто задаваемые вопросы
Какой синтаксис Db2 распознаётся?
Распознаются строки в одинарных кавычках с удвоенными кавычками, шестнадцатеричные литералы X'', графические G'' и национальные N'', а также строки GX'', UX'' и BX''. Идентификаторы в двойных кавычках и обычные имена, содержащие #, @ или $, сохраняются без изменений.
Как обрабатывается FETCH FIRST?
FETCH начинается с новой строки, как и LIMIT. Остальная часть предложения, например FIRST 10 ROWS ONLY, остаётся вместе на следующей строке.
Как обрабатываются WITH UR и другие предложения изоляции?
WITH UR, WITH CS, WITH RS и WITH RR остаются в той же строке, что и предшествующее им предложение. Их никогда не принимают за общее табличное выражение WITH.
Поддерживается ли MERGE?
Да. Ветви WHEN MATCHED THEN и WHEN NOT MATCHED THEN начинаются с новой строки.
Можно ли форматировать процедуры SQL PL?
Да. Блоки BEGIN и END с конструкциями IF, CASE и LOOP получают отступы, а операторы внутри размещаются на отдельных строках.
Сохраняются ли комментарии?
Да. Комментарии -- и блочные комментарии /* ... */ остаются на месте. Для многострочных блочных комментариев отступы обновляются в соответствии с новым форматированием.
Меняется ли регистр ключевых слов?
Нет. Регистр ключевых слов и имён сохраняется таким, каким вы его указали. База данных всё равно переводит имена Db2 без кавычек в верхний регистр, поэтому смешанный регистр работает.
Какие ошибки обнаруживаются?
Незакрытые строки, идентификаторы в кавычках и блочные комментарии, а также несбалансированные скобки — для каждого случая указываются строка и столбец. Ничего не отправляется в базу данных.
Каков максимальный размер входных данных?
До 1 MB на запрос и 128 KB на инструкцию. Длинные скрипты форматируются по одной инструкции за раз.
Можно ли выбрать отступы и сохраняется ли мой SQL?
Используйте 2 или 4 пробела либо табуляцию. SQL форматируется только в памяти и никогда не сохраняется.