ROUTINES 视图

INFORMATION_SCHEMA.ROUTINES 视图中的每一行对应数据集中的每个例程。

所需权限

如需查询 INFORMATION_SCHEMA.ROUTINES 视图,您需要拥有以下 Identity and Access Management (IAM) 权限:

  • bigquery.routines.get
  • bigquery.routines.list

以下每个预定义的 IAM 角色都包含获取例程元数据所需的权限:

  • roles/bigquery.admin
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

如需详细了解 BigQuery 权限,请参阅使用 IAM 进行访问权限控制

架构

当您查询 INFORMATION_SCHEMA.ROUTINES 视图时,查询结果为数据集中的每个例程返回一行。

INFORMATION_SCHEMA.ROUTINES 视图具有如下架构:

列名 数据类型
SPECIFIC_CATALOG STRING 包含数据集(该数据集中定义了例程)的项目的名称
SPECIFIC_SCHEMA STRING 包含例程的数据集的名称
SPECIFIC_NAME STRING 例程的名称
ROUTINE_CATALOG STRING 包含数据集(该数据集中定义了例程)的项目的名称
ROUTINE_SCHEMA STRING 包含例程的数据集的名称
ROUTINE_NAME STRING 例程的名称
ROUTINE_TYPE STRING 例程类型:
  • FUNCTION:BigQuery 用户定义的永久性函数
  • PROCEDURE:BigQuery 存储过程
  • TABLE FUNCTION:BigQuery 表函数。
DATA_TYPE STRING 例程返回的数据类型。如果例程为存储过程,则值为 NULL
ROUTINE_BODY STRING 例程正文的定义方式;如果例程为 JavaScript 用户定义函数,则值为 SQLEXTERNAL
ROUTINE_DEFINITION STRING 例程的定义
EXTERNAL_LANGUAGE STRING 如果例程为 JavaScript 用户定义的函数,则值为 JAVASCRIPT;如果例程是通过 SQL 定义的,则值为 NULL
IS_DETERMINISTIC STRING 如果例程已知具有确定性,则值为 YES;如果例程已知不具确定性,则值为 NO;如果例程是未知的,则值为 NULL
SECURITY_TYPE STRING 例程的安全类型;值始终为 NULL
CREATED TIMESTAMP 例程的创建时间
LAST_ALTERED TIMESTAMP 例程的上次修改时间
DDL STRING 可用于创建例程的 DDL 语句,例如 CREATE FUNCTIONCREATE PROCEDURE

范围和语法

针对此视图的查询必须包含数据集或区域限定符。如需了解详情,请参阅语法。下表说明了此视图的区域和资源范围:

视图名称 资源范围 区域范围
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES 项目级 REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES 数据集级 数据集位置
请替换以下内容:

  • 可选:PROJECT_ID:您的 Google Cloud 项目的 ID。如果未指定,则使用默认项目。
+ REGION:任何数据集区域名称。例如 region-us。 + DATASET_ID:您的数据集的 ID。如需了解详情,请参阅数据集限定符

示例

-- Returns metadata for routines in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.ROUTINES;

-- Returns metadata for routines in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.ROUTINES;

示例

示例

如需对非默认项目运行查询,请按以下格式将相应的项目 ID 添加到数据集:

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
。例如,`myproject`.INFORMATION_SCHEMA.ROUTINES

以下示例从 INFORMATION_SCHEMA.ROUTINES 视图中检索所有列。返回的元数据是默认项目 myprojectmydataset 的所有例程的元数据。数据集 mydataset 包含一个名为 myroutine1 的例程。

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

结果类似于以下内容:

+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| specific_catalog | specific_schema | specific_name | routine_catalog | routine_schema | routine_name | routine_type | data_type | routine_body | routine_definition | external_language | is_deterministic | security_type |           created           |         last_altered        |                            ddl                             |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| myproject        | mydataset       | myroutine1    | myproject       | mydataset      | myroutine1   | FUNCTION     | NULL      | SQL          | x + 3              | NULL              | NULL             | NULL          | 2019-10-03 17:29:00.235 UTC | 2019-10-03 17:29:00.235 UTC | CREATE FUNCTION myproject.mydataset.myroutine1(x FLOAT64) |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | AS (                                                      |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | x + 3                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+