SHOW OBJECTS

アクセス権限があるテーブルとビューをリストします。このコマンドを使用して、指定したデータベースまたはスキーマ(またはセッションの現在のデータベース/スキーマ)、またはアカウント全体のテーブルとビューを一覧表示できます。

構文

SHOW [ TERSE ] OBJECTS [ LIKE '<pattern>' ]
                       [ IN
                             {
                               ACCOUNT                                         |

                               DATABASE                                        |
                               DATABASE <database_name>                        |

                               SCHEMA                                          |
                               SCHEMA <schema_name>                            |
                               <schema_name>

                               APPLICATION <application_name>                  |
                               APPLICATION PACKAGE <application_package_name>  |
                             }
                       ]
                       [ STARTS WITH '<name_string>' ]
                       [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

パラメーター

TERSE

出力列のサブセットのみを返します。

  • created_on

  • name

  • kind

  • database_name

  • schema_name

デフォルト: 値なし(出力にすべての列を含む)。

LIKE 'pattern'

オプションで、オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは 同じ 結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. デフォルト: 値なし(フィルタリングは出力に非適用)。

[ IN ... ]

オプションで、コマンドのスコープを指定します。次のいずれかを指定します。

ACCOUNT

アカウント全体の記録を返します。

DATABASE. DATABASE db_name

現在使用中のデータベースまたは指定されたデータベース(db_name)の記録を返します。

db_name なしで DATABASE を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。

注釈

データベースコンテキストで IN 句を指定せずに SHOW コマンドを使用すると、予想よりも少ない結果になる可能性があります。

IN 句を使用しない場合、同じ名前のオブジェクトは一度だけ表示されます。例えば、 schema1 にテーブル t1 、そして schema2 にテーブル t1 があり、両方とも指定したデータベースコンテキストのスコープ内にある場合(つまり、選択したデータベースが schema1schema2 の親である場合)の場合、 SHOW TABLES は t1 テーブルの1つのみを表示します。

SCHEMA. SCHEMA schema_name

現在使用中のスキーマまたは指定されたスキーマ(schema_name)の記録を返します。

データベースが使用中の場合、または完全修飾 schema_name (例: db.schema) を指定する場合、 SCHEMA はオプションです。

データベースが使用されていない場合は、 SCHEMA を指定しても出力には影響しません。

APPLICATION application_name. APPLICATION PACKAGE application_package_name

名前付き Snowflake Native App またはアプリケーションパッケージの記録を返します。

デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: DATABASE がデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。

  • データベースなし: ACCOUNT はデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返します)。

STARTS WITH 'name_string'

オプションで、オブジェクト名の先頭に表示される文字に基づいてコマンド出力をフィルタリングします。文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

たとえば、次の文字列は 異なる 結果を返します。

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. デフォルト: 値なし(フィルターは出力に適用されない)

LIMIT rows [ FROM 'name_string' ]

オプションで、返される行の最大数を制限すると同時に、結果の「ページネーション」を有効にします。実際に返される行数は、指定された制限より少ない場合があります。例えば、既存のオブジェクトの数が指定された制限より少ないなどです。

オプションの FROM 'name_string' サブ句は、結果の「カーソル」として効果的に機能します。これにより、指定された文字列と一致するオブジェクト名を持つ最初の行に続く指定された行数を取得できます。

  • 文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

  • 文字列に完全なオブジェクト名を含める必要はありません。部分的な名前がサポートされています。

デフォルト:値なし(出力に制限は適用されない)

注釈

FROM 'name_string' 句と STARTS WITH 'name_string' 句の両方をサポートする SHOW コマンドの場合、同じステートメントでこれらの両方の句を組み合わせることができます。ただし、両方の条件を満たしている必要があります。そうでない場合、互いにキャンセルされ、結果が返されません。

さらに、オブジェクトは名前の辞書式順序で返されるため、 FROM 'name_string' は、 STARTS WITH 'name_string' によって返される行よりも辞書式の値が大きい行のみを返します。

例:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' は結果を返しません。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' は結果を返しません。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' は結果を返します(入力文字列に一致する行がある場合)。

使用上の注意

  • マテリアライズドビューの場合、これは「MATERIALIZED VIEW」ではなく、「VIEW」を返します。

  • このコマンドの実行には、稼働中のウェアハウスは必要ありません。

  • このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。

  • MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。このコマンドの出力をクエリするには、 パイプ演算子 を使用することもできます。

  • コマンドは、コマンドを実行するために使用されるロールのアクセス権限によって決定された通り、指定されたオブジェクトタイプに対して 最大 1万件の記録を返します。1万件を超える記録は、フィルターを適用しても返されません。

    1万件を超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。

現在のデータベースで表示権限のある、 HT_ で始まる名前のテーブルとビューをすべて表示します。

SHOW OBJECTS IN DATABASE STARTS WITH 'HT_';
Copy
+-------------------------------+------------------------+---------------+----------------+-------+---------+------------+---------+-----------+--------------+----------------+-----------------+--------+-----------+------------+
| created_on                    | name                   | database_name | schema_name    | kind  | comment | cluster_by |    rows |     bytes | owner        | retention_time | owner_role_type | budget | is_hybrid | is_dynamic |
|-------------------------------+------------------------+---------------+----------------+-------+---------+------------+---------+-----------+--------------+----------------+-----------------+--------+-----------+------------|
| 2024-05-13 19:08:41.946 -0700 | HT_PRECIP              | HYBRID1_DB    | HYBRID1_SCHEMA | TABLE |         |            |       0 |         0 | HYBRID1_ROLE | 1              | ROLE            | NULL   | Y         | N          |
| 2024-08-23 11:44:13.694 -0700 | HT_SENSOR_DATA_DEVICE1 | HYBRID1_DB    | HYBRID1_SCHEMA | TABLE |         |            | 2678400 | 133920000 | HYBRID1_ROLE | 1              | ROLE            | NULL   | Y         | N          |
| 2024-05-13 16:37:29.217 -0700 | HT_WEATHER             | HYBRID1_DB    | HYBRID1_SCHEMA | TABLE |         |            |      55 |      2985 | HYBRID1_ROLE | 1              | ROLE            | NULL   | Y         | N          |
| 2024-07-18 12:17:27.381 -0700 | HT_WEATHER             | HYBRID1_DB    | PUBLIC         | TABLE |         |            |      55 |      3040 | ACCOUNTADMIN | 1              | ROLE            | NULL   | Y         | N          |
+-------------------------------+------------------------+---------------+----------------+-------+---------+------------+---------+-----------+--------------+----------------+-----------------+--------+-----------+------------+