ROUTINES

重要

此功能目前以公共预览版提供。

适用于: 勾选“是” Databricks SQL 勾选“是” Databricks Runtime 11.3 LTS 及更高版本 勾选“是” 仅 Unity Catalog

INFORMATION_SCHEMA.ROUTINES 会列出目录中的例程(函数)。

返回的行仅限于用户有权与之交互的例程。

定义

ROUTINES 关系包含以下列:

名称 数据类型 Nullable 标准 描述
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'。 保留供将来使用。
DATA_TYPE STRING 结果数据类型名称,或表值函数的 'TABLE'
FULL_DATA_TYPE STRING 结果数据类型定义,例如 'DECIMAL(10, 4)'
CHARACTER_MAXIMUM_LENGTH INTEGER 始终为 NULL,保留以供将来使用。
CHARACTER_OCTET_LENGTH STRING 始终为 NULL,保留以供将来使用。
NUMERIC_PRECISION INTEGER 对于 base-2 整数类型、FLOATDOUBLE,为支持的位数。 对于 DECIMAL,为位数;否则为 NULL
NUMERIC_PRECISION_RADIX INTEGER 对于 DECIMAL,为 10;对于所有其他数字类型,为 2;否则为 NULL
NUMERIC_SCALE INTEGER 对于整数类型,为 0;对于 DECIMAL,为小数点右侧的位数;否则为 NULL
DATETIME_PRECISION INTEGER 对于 DATE,为 0;对于 TIMESTAMPINTERVALSECOND,为 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 如果例程从关系中读取数据,则为 'READS SQL DATA',否则为 'CONSTAINS SQL'
IS_NULL_CALL STRING 始终为 'YES',保留以供将来使用。
SQL_PATH STRING 始终为 NULL,保留以供将来使用。
SECURITY_TYPE STRING 始终为 'DEFINER',保留以供将来使用。
AS_LOCATOR STRING 始终为 'NO',保留以供将来使用。
COMMENT STRING 描述例程的可选注释。
CREATED TIMESTAMP 创建例程的时间戳。
CREATED_BY STRING 创建例程的主体
LAST_ALTERED TIMESTAMP 上次以任何方式更改例程定义时的时间戳。
LAST_ALTERED_BY STRING 上次更改例程的主体

约束

以下约束适用于 ROUTINES 关系:

名称 列列表 描述
主密钥 ROUTINES_PK SPECIFIC_CATALOGSPECIFIC_SCHEMASPECIFIC_NAME 唯一标识例程。
外键 ROUTINES_SCHEMATA_FK SPECIFIC_CATALOGSPECIFIC_SCHEMA 引用 SCHEMATA

示例

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