「參數」檢視畫面
INFORMATION_SCHEMA.PARAMETERS 檢視表會為資料集中每個常式的每個參數提供一個資料列。
所需權限
如要查詢 INFORMATION_SCHEMA.PARAMETERS 檢視畫面,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.routines.getbigquery.routines.list
下列每個預先定義的 IAM 角色都包含取得例行中繼資料所需的權限:
roles/bigquery.adminroles/bigquery.metadataViewerroles/bigquery.dataViewer
如要進一步瞭解 BigQuery 權限,請參閱「使用 IAM 控管存取權」。
結構定義
查詢 INFORMATION_SCHEMA.PARAMETERS 檢視表時,資料集中每個處理常式的每個參數在查詢結果中都會有一個資料列。
INFORMATION_SCHEMA.PARAMETERS 檢視表具有下列結構定義:
| 資料欄名稱 | 資料類型 | 值 |
|---|---|---|
specific_catalog |
STRING |
其中包含定義參數之處理常式的資料集,其所屬專案的名稱 |
specific_schema |
STRING |
包含定義參數之處理常式的資料集名稱 |
specific_name |
STRING |
定義參數之處理常式的名稱 |
ordinal_position |
STRING |
從 1 開始的參數位置,或傳回值 0 |
parameter_mode |
STRING |
參數的模式,IN、OUT、INOUT 或 NULL |
is_result |
STRING |
參數是否為函式的結果,值為 YES 或 NO |
parameter_name |
STRING |
參數的名稱 |
data_type |
STRING |
如果定義為任何類型,參數類型將會是 ANY TYPE |
parameter_default |
STRING |
以 SQL 常值表示的參數預設值,一律為 NULL |
is_aggregate |
STRING |
無論是否為匯總參數,一律為 NULL |
為確保穩定性,建議您在資訊結構定義查詢中明確列出資料欄,而非使用萬用字元 (SELECT *)。明確列出資料欄可避免基礎結構定義變更時,查詢中斷。
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。詳情請參閱「語法」。下表說明這個檢視畫面的區域和資源範圍:
| 檢視表名稱 | 資源範圍 | 區域範圍 |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.PARAMETERS |
專案層級 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.PARAMETERS |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION:任何資料集區域名稱。 例如:`region-us`。 -
DATASET_ID:資料集 ID。詳情請參閱「資料集限定符」。
示例
-- Returns metadata for parameters of a routine in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.PARAMETERS;
-- Returns metadata for parameters of a routine in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.PARAMETERS;
範例
範例
如要對預設專案以外的專案中的資料集執行查詢,請使用下列格式新增專案 ID:
`PROJECT_ID`.`DATASET_ID`.INFORMATION_SCHEMA.PARAMETERS
PROJECT_ID:專案 ID。DATASET_ID:資料集 ID。
例如 example-project.mydataset.INFORMATION_SCHEMA.JOBS_BY_PROJECT。
以下範例會擷取 INFORMATION_SCHEMA.PARAMETERS 檢視表的所有參數。系統傳回的是預設專案 (myproject) 中 mydataset 內的處理常式中繼資料。
SELECT * EXCEPT(is_typed) FROM mydataset.INFORMATION_SCHEMA.PARAMETERS WHERE table_type = 'BASE TABLE';
結果大致如下:
+-------------------+------------------+---------------+------------------+----------------+-----------+----------------+-----------+-------------------+--------------+ | specific_catalog | specific_schema | specific_name | ordinal_position | parameter_mode | is_result | parameter_name | data_type | parameter_default | is_aggregate | +-------------------+------------------+---------------+------------------+----------------+-----------+----------------+-----------+-------------------+--------------+ | myproject | mydataset | myroutine1 | 0 | NULL | YES | NULL | INT64 | NULL | NULL | | myproject | mydataset | myroutine1 | 1 | NULL | NO | x | INT64 | NULL | NULL | +-------------------+------------------+---------------+------------------+----------------+-----------+----------------+-----------+-------------------+--------------+