Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применяется к:
Databricks SQL
Databricks Runtime 16.3 и более поздних версий
Важный
Эта функция доступна в общедоступной предварительной версии.
Вы можете использовать мощную процедурную логику с помощью стандартного синтаксиса сценариев на основе SQL/PSM.
Любой скрипт SQL состоит из и начинается с составного блока инструкций (BEGIN ... END).
Составная инструкция начинается с раздела для объявления локальных переменных, определяемых пользователем условий и обработчиков условий, которые используются для обработки исключений.
За этим следует составной текст инструкции, состоящий из следующих элементов:
- Инструкции управления потоком включают циклы по выражениям предиката, циклы FOR по результатам запроса, условная логика, например IF и CASE, а также средства для прерывания циклов, таких как LEAVE и ITERATE.
- Инструкции DDL, такие как
ALTER,CREATE,DROP. - Операторы DCL (Data Control), например, GRANT и REVOKE.
- Инструкции INSERTDML, UPDATEDELETE и MERGE.
- Запросы , возвращающие результирующие наборы вызывающей части скрипта.
- SET инструкции для задания локальных переменных, а также переменных сеанса.
- Оператор EXECUTE IMMEDIATE.
- Вложенные составные операции, предоставляющие вложенные области для переменных, условий и обработчиков условий.
Передача данных между вызывающей стороной и составным выражением
Существует два способа передачи данных в скрипт SQL и из нее.
- Используйте переменные сеанса для передачи скалярных значений или небольших наборов массивов или сопоставлений из одного скрипта SQL в другой.
- Используйте маркеры параметров для передачи скалярных значений или небольших наборов массивов или сопоставления данных из мини-приложения записной книжки, Python или другого языка в скрипт SQL.
Область переменных
Переменные, объявленные в составной инструкции, можно ссылаться в любом выражении в составной инструкции. Databricks разрешает идентификаторы из самой внутренней области, следуя правилам, описанным в разделе «Разрешение имён». Для разрешения неоднозначностей с повторяющимися именами переменных можно использовать необязательные составные инструкции метки.
Обработка условий
Скрипты SQL поддерживают обработчики исключений, которые используются для перехвата и обработки ошибок в процессе EXIT выполнения скрипта SQL.
В обработчике условий можно ПЕРЕСИГНАЛИЗИРОВАТЬ исходное исключение, СИГНАЛИЗИРОВАТЬ новое исключение или выйти из составной инструкции без выброса исключения.
Обработчики условий можно определить для обработки трех отдельных классов условий:
Одно или несколько именованных условий, которые могут быть определенным классом ошибок Databricks, например
DIVIDE_BY_ZEROили объявленным пользователем условием. Эти обработчики обрабатывают эти конкретные условия.Один или несколько
SQLSTATE, которые могут быть вызваны Databricks или инструкциейSIGNALпользователя. Эти обработчики могут обрабатывать любое условие, связанное с этимSQLSTATE.Универсальный обработчик
SQLEXCEPTIONможет перехватывать все условия, относящиеся кSQLEXCEPTION(любыеSQLSTATE, которые не являютсяXX***и не02***).
Ниже описано, как решить, какой обработчик условий применяется к исключению. Этот обработчик условий называется наиболее подходящим обработчиком:
Обработчик условий не может применяться к любой инструкции, определенной в собственном тексте или тексте любого обработчика условий, объявленного в той же составной инструкции.
Применимые обработчики условий, определенные внутри самой внутренней составной инструкции, где возникло исключение, являются соответствующими.
Если доступно несколько соответствующих обработчиков, наиболее подходящий обработчик является наиболее подходящим. Например, обработчик именованного условия более конкретен, чем обработчик на именованном
SQLSTATE. Универсальный обработчикEXCEPTIONявляется наименее конкретным.
Если обработчик SIGNALили RESIGNALне является условием собственного, результат обработчика условий заключается в выполнении инструкции после составной инструкции, объявленной обработчиком для выполнения следующего.
Хранимые процедуры SQL
Важный
Эта функция доступна в общедоступной предварительной версии.
Область применения:
Databricks SQL
Databricks Runtime версии 17.0 и выше
С помощью инструкции CREATE PROCEDURE можно сохранить скрипт SQL в каталоге Unity. Затем GRANT вы можете предоставить доступ к процедуре другим пользователям. Затем эти субъекты могут использовать инструкцию CALL для вызова процедуры.
Список инструкций потока управления
Ниже приведен список поддерживаемых инструкций потока управления:
- Инструкция CASE
- Составная инструкция BEGIN END
- Инструкция FOR
- GET Инструкция по диагностике
- Оператор IF THEN ELSE
- Оператор ITERATE
- Оператор LEAVE
- Оператор LOOP
- Оператор REPEAT
- Инструкция RESIGNAL
- Оператор SIGNAL
- Цикл WHILE