重要
此功能目前以公共预览版提供。
              适用于: Databricks SQL
 Databricks SQL  Databricks Runtime 11.3 LTS 及更高版本
 Databricks Runtime 11.3 LTS 及更高版本  仅 Unity Catalog
 仅 Unity Catalog
INFORMATION_SCHEMA.ROUTINES 会列出目录中的例程(函数)。
返回的行仅限于用户有权与之交互的例程。
定义
              ROUTINES 关系包含以下列:
| 名称 | 数据类型 | 可为 Null | 标准 | 描述 | 
|---|---|---|---|---|
| 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 | 是 | 是 | 对于 base-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;