「日常安排」檢視畫面
INFORMATION_SCHEMA.ROUTINES 檢視表包含資料集中每個處理常式的一個資料列。
所需權限
如要查詢 INFORMATION_SCHEMA.ROUTINES 檢視畫面,您必須具備下列身分與存取權管理 (IAM) 權限:
- bigquery.routines.get
- bigquery.routines.list
以下每個預先定義的 IAM 角色都包含取得例行中繼資料所需的權限:
- roles/bigquery.admin
- roles/bigquery.metadataViewer
- roles/bigquery.dataViewer
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」。
結構定義
查詢 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 | 
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。詳情請參閱「語法」。下表說明這個檢視畫面的區域和資源範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 | 
|---|---|---|
| [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 | | | | | | | | | | | | | | | | | ); | +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+