Поделиться через


ROUTINES

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Область применения:флажок Databricks SQL флажок Databricks Runtime 11.3 LTS и более поздней флажок версии каталога Unity

INFORMATION_SCHEMA. ПОДПРОГРАММЫ перечисляют подпрограммы (функции) в каталоге.

Возвращаемые записи ограничены подпрограммами, с которыми пользователю разрешено взаимодействовать.

Определение

Отношение ROUTINES содержит следующие столбцы:

Имя. Тип данных Допускает значение NULL Стандартные Description
SPECIFIC_CATALOG STRING No Да Каталог с подпрограммой.
SPECIFIC_SCHEMA STRING No Да База данных (схема), содержащая подпрограмму.
SPECIFIC_NAME STRING No Да Уникальное (конкретное) имя схемы подпрограммы.
ROUTINE_CATALOG STRING No Да Соответствует SPECIFIC_CATALOG.
ROUTINE_SCHEMA STRING No Да Соответствует SPECIFIC_SCHEMA.
ROUTINE_NAME STRING No Да Имя подпрограммы.
ROUTINE_TYPE STRING No Да Всегда'FUNCTION'. Зарезервировано для последующего использования.
DATA_TYPE STRING No Да Имя типа данных результата или 'TABLE' для возвращающей табличное значение функции.
FULL_DATA_TYPE STRING No No Определение типа данных результата, например 'DECIMAL(10, 4)'.
CHARACTER_MAXIMUM_LENGTH INTEGER Да Да Всегда NULL; зарезервировано для использования в будущем.
CHARACTER_OCTET_LENGTH STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
NUMERIC_PRECISION INTEGER Да Да Для целых числовых типов с основанием 2 FLOAT и DOUBLE, количество поддерживаемых битов. Для DECIMAL — количество цифр; в противном случае — NULL.
NUMERIC_PRECISION_RADIX INTEGER Да Да Для DECIMAL — 10, для всех остальных числовых типов 2; в противном случае — NULL.
NUMERIC_SCALE INTEGER Да Да Для целочисленных типов — 0, для DECIMAL — количество цифр справа от десятичной запятой; в противном случае — NULL.
DATETIME_PRECISION INTEGER Да Да Для DATE — 0, для TIMESTAMP и INTERVAL... SECOND — 3, для любого другого INTERVAL — 0; в противном случае — NULL.
INTERVAL_TYPE STRING Да Да Для INTERVAL — часть единицы интервала, например 'YEAR TO MONTH'; в противном случае — NULL.
INTERVAL_PRECISION INTERAL Да Да Всегда NULL; зарезервировано для использования в будущем.
MAXIMUM_CARDINALITY INTEGER Да Да Всегда NULL; зарезервировано для использования в будущем.
ROUTINE_BODY STRING No Да 'SQL' или 'PYTHON'.
ROUTINE_DEFINITION STRING Да Да Полное определение подпрограммы. NULL, если пользователь не является владельцем.
EXTERNAL_NAME STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
EXTERNAL_LANGUAGE STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
PARAMETER_STYLE STRING Да Да 'SQL', зарезервированный для дальнейшего использования.
IS_DETERMINISTIC STRING No Да 'YES', если подпрограмма определена как детерминированная, 'NO' в противном случае.
SQL_DATA_ACCESS STRING No Да 'READS SQL DATA', если подпрограмма считывается из связи, 'CONSTAINS SQL' в противном случае.
IS_NULL_CALL STRING Да Да Всегда 'YES'; зарезервировано для использования в будущем.
SQL_PATH STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
SECURITY_TYPE STRING No Да Всегда 'DEFINER'; зарезервировано для использования в будущем.
AS_LOCATOR STRING No Да Всегда 'NO'; зарезервировано для использования в будущем.
COMMENT STRING Да Нет Необязательный комментарий с описанием подпрограммы.
CREATED TIMESTAMP No No Метка времени для создания подпрограммы.
CREATED_BY STRING No No Субъект, создавший подпрограмму.
LAST_ALTERED TIMESTAMP No No Метка времени, когда определение подпрограммы было изменено в последний раз каким-либо образом.
LAST_ALTERED_BY STRING No No Субъект, который последним изменил подпрограмму.

Ограничения

К отношению ROUTINES применяются следующие ограничения:

Класс Имя. Список столбцов Description
Первичный ключ ROUTINES_PK SPECIFIC_CATALOG, , SPECIFIC_SCHEMASPECIFIC_NAME Уникальный идентификатор подпрограммы.
Внешний ключ ROUTINES_SCHEMATA_FK SPECIFIC_CATALOG, SPECIFIC_SCHEMA Ссылается на SCHEMATA.

Примеры

> SELECT routine_name, routine_definition
    FROM information_schema.routines
    WHERE specific_schema = 'default'
    ORDER BY routine_name;