PARAMETERS ビュー

INFORMATION_SCHEMA.PARAMETERS ビューには、データセット内の各ルーティンのパラメータごとに 1 行が表示されます。

必要な権限

INFORMATION_SCHEMA.PARAMETERS ビューをクエリするには、次の 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.PARAMETERS ビューにクエリを実行すると、クエリ結果として、データセット内の各ルーティンのパラメータごとに 1 行が表示されます。

INFORMATION_SCHEMA.PARAMETERS ビューのスキーマは次のとおりです。

列名 データ型
SPECIFIC_CATALOG STRING パラメータを含むルーティンが定義されているデータセットを含むプロジェクトの名前
SPECIFIC_SCHEMA STRING パラメータが定義されているルーティンを含むデータセットの名前
SPECIFIC_NAME STRING パラメータが定義されているルーティンの名前
ORDINAL_POSITION STRING パラメータの位置(開始値 1)、または戻り値の 0
PARAMETER_MODE STRING パラメータのモード(INOUTINOUT、または NULL
IS_RESULT STRING パラメータがどの関数(YES または NO)の結果であるか
PARAMETER_NAME STRING パラメータの名前
DATA_TYPE STRING パラメータのタイプ(任意の型として定義されている場合は ANY TYPE
PARAMETER_DEFAULT STRING SQL リテラル値としてのパラメータのデフォルト値(常に NULL
IS_AGGREGATE STRING 集計パラメータであるかどうかにかかわらず、常に NULL です

スコープと構文

このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.PARAMETERS プロジェクト レベル REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.PARAMETERS データセット レベル データセットのロケーション
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの 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         |
+-------------------+------------------+---------------+------------------+----------------+-----------+----------------+-----------+-------------------+--------------+