「日常安排」檢視畫面
INFORMATION_SCHEMA.ROUTINES 檢視表中的每個資料列,代表資料集中的一個常式。
所需權限
如要查詢 INFORMATION_SCHEMA.ROUTINES 檢視畫面,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.routines.getbigquery.routines.list
下列每個預先定義的 IAM 角色都包含取得例行中繼資料所需的權限:
roles/bigquery.adminroles/bigquery.metadataViewerroles/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 |
處理常式類型:
|
data_type |
STRING |
處理常式傳回的資料類型。如果處理常式是已儲存程序,則為 NULL |
routine_body |
STRING |
處理常式主體的定義方式,如果處理常式是 JavaScript 使用者定義函式,則為 SQL 或 EXTERNAL |
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 FUNCTION 或 CREATE PROCEDURE |
connection |
STRING |
處理常式的連線名稱 (如有)。否則
NULL |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。詳情請參閱「語法」。下表說明這個檢視畫面的區域和資源範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[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 檢視表的所有資料欄。系統傳回的是預設專案 (myproject) 中 mydataset 內所有處理常式的中繼資料。資料集 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 | | | | | | | | | | | | | | | | | ); | +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+