ROUTINES ビュー
INFORMATION_SCHEMA.ROUTINES ビューには、データセット内のルーティンごとに 1 行が表示されます。
必要な権限
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 ビューにクエリを実行すると、クエリの結果として、データセット内の各ルーティンが 1 行ずつで返されます。
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 ユーザー定義関数である場合。または、
NULL - ルーティンが SQL で定義されている場合。 | 
    
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 | | | | | | | | | | | | | | | | | ); | +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+