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


ROUTINES

Внимание

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

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

INFORMATION_SCHEMA.ROUTINES перечисляет процедуры (функции), содержащиеся в каталоге.

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

Определение

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

Имя. Тип данных Нуллабельный Стандарт Описание
SPECIFIC_CATALOG STRING Нет Да Каталог, содержащий процедуру.
SPECIFIC_SCHEMA STRING Нет Да База данных (схема), содержащая рутинную процедуру.
SPECIFIC_NAME STRING Нет Да Уникальное (конкретное) имя схемы процедуры.
ROUTINE_CATALOG STRING Нет Да Соответствует SPECIFIC_CATALOG.
ROUTINE_SCHEMA STRING Нет Да Соответствует SPECIFIC_SCHEMA.
ROUTINE_NAME STRING Нет Да Имя подпрограммы.
ROUTINE_TYPE STRING Нет Да 'FUNCTION' или 'PROCEDURE'.
DATA_TYPE STRING Да Да Имя типа данных результата, 'TABLE' для табличной функции или NULL для процедур.
FULL_DATA_TYPE STRING Да Нет Определение типа результирующих данных, например 'DECIMAL(10, 4)'или 'NULL' процедур.
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 Нет Да 'SQL' или 'PYTHON'.
ROUTINE_DEFINITION STRING Да Да Полное определение подпрограммы. NULL, если пользователь не является владельцем.
EXTERNAL_NAME STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
EXTERNAL_LANGUAGE STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
PARAMETER_STYLE STRING Да Да 'SQL', зарезервировано для дальнейшего использования.
IS_DETERMINISTIC STRING Нет Да 'YES', если рутина определена как детерминированная, 'NO' в противном случае.
SQL_DATA_ACCESS STRING Нет Да 'MODIFIES SQL DATA' для процедур, 'READS SQL DATA' если функция считывается из отношения, 'CONTAINS SQL' в противном случае.
IS_NULL_CALL STRING Да Да Всегда 'YES'; зарезервировано для использования в будущем.
SQL_PATH STRING Да Да Всегда NULL; зарезервировано для использования в будущем.
SECURITY_TYPE STRING Нет Да 'DEFINER' если подпрограмма выполняется с правами определителя, 'INVOKER' если она выполняется с правами вызывающего.
AS_LOCATOR STRING Нет Да Всегда 'NO'; зарезервировано для использования в будущем.
COMMENT STRING Да Нет Необязательный комментарий с описанием процедуры.
CREATED TIMESTAMP Нет Нет Метка времени, когда рутина была создана.
CREATED_BY STRING Нет Нет Субъект, создавший подпрограмму.
LAST_ALTERED TIMESTAMP Нет Нет Метка времени, когда определение подпрограммы было изменено в последний раз каким-либо образом.
LAST_ALTERED_BY STRING Нет Нет Руководитель, который последним изменил процедуру.

Ограничения

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

Класс Имя. Список столбцов Описание
Первичный ключ ROUTINES_PK SPECIFIC_CATALOG, SPECIFIC_SCHEMA, SPECIFIC_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;