カテゴリ:

テーブル、ビュー、シーケンス DDL

SHOW VIEWS

ユーザーにアクセス権限があるビュー(セキュリティで保護されたビューを含む)をリストします。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマ、またはアカウント全体のビューを一覧表示できます。

出力は、データベース、スキーマ、およびビュー名の辞書順に並べられたビューのメタデータとプロパティを返します。これは、提供されたフィルターを使用して結果をフィルターする場合に注意することが重要です。

こちらもご参照ください:

ALTER VIEWCREATE VIEWDROP VIEW

VIEWS ビュー (情報スキーマ)

構文

SHOW [ TERSE ] VIEWS [ LIKE '<pattern>' ]
                     [ IN { ACCOUNT | DATABASE [ <db_name> ] | [ SCHEMA ] [ <schema_name> ] } ]
                     [ STARTS WITH '<name_string>' ]
                     [ LIMIT <rows> [ FROM '<name_string>' ] ]

パラメーター

TERSE

オプションで、出力列のサブセットのみを返します。

  • created_on

  • name

  • kind

  • database_name

  • schema_name

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

LIKE 'パターン'

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

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

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

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

IN ACCOUNT | [ DATABASE ] データベース名 | [ SCHEMA ] スキーマ名

オプションで、コマンドのスコープを指定します。これは、コマンドが現在/指定されたデータベースまたはスキーマのレコードのみを一覧表示するか、アカウント全体に表示するかを決定します。

DATABASE または SCHEMA キーワードは必須ではありません。データベースまたはスキーマ名のみを指定して、スコープを設定できます。同様に、セッションで現在使用中のデータベースがある場合、データベース名またはスキーマ名は必要ありません。

  • DATABASE または SCHEMA が名前なしで指定され、セッションで現在使用中のデータベースがない場合、パラメーターは出力に影響しません。

  • SCHEMA が名前で指定され、セッションで現在使用中のデータベースがない場合、スキーマ名はデータベース名で完全修飾する 必要があります (例: testdb.testschema)。

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

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

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

STARTS WITH '名前文字列'

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

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

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

LIMIT [ FROM '名前文字列' ]

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

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

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

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

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

注釈

FROM '名前文字列'STARTS WITH '名前文字列' の両方を同じステートメントで組み合わせることができます。ただし、両方の条件を満たしている必要があります。そうでない場合は、互いにキャンセルされ、結果が返されません。

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

例:

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

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

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

使用上の注意

  • このコマンドは、実行中のウェアハウスを必要としません。

  • LIMIT の値は 10000 を超えることはできません。 LIMIT が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。

    10Kを超えるレコードが存在する結果を表示するには、 LIMIT を含めるか、 情報スキーマ の対応するビューをクエリします。

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

  • 設計上、コマンド出力には安全なビューが含まれますが、ビューの所有権を持つロールを使用している場合を除き、これらのビューに関する特定の情報は提供されません。セキュリティ保護されたビューの詳細を表示するには、ビューを所有するロールを使用するか、情報スキーマの VIEWS ビューを使用する必要があります。

出力

コマンド出力は、次の列の列プロパティとメタデータを提供します。

説明

created_on

ビューが作成された時のタイムスタンプ。

name

ビューの名前。

reserved

(今後の使用のために予約。)

database_name

ビューが存在するデータベースの名前。

schema_name

ビューが存在するスキーマの名前です。

owner

ビューの所有者。

comment

オプションのコメント。

text

ビューを作成したコマンドのテキスト(例: CREATE VIEW ...)。

is_secure

ビューがセキュアビューである場合はtrue。それ以外の場合はfalse。

is_materialized

ビューがマテリアライズドビューの場合はtrue。それ以外の場合はfalse。

mydb.public スキーマで表示する権限を持っている、名前が line で始まるすべてのビューを表示します。

SHOW VIEWS LIKE 'line%' IN mydb.public;

+-------------------------------+---------+----------+---------------+-------------+--------+---------+-------------------------------------------------------+-----------+-----------------+
| created_on                    | name    | reserved | database_name | schema_name | owner  | comment | text                                                  | is_secure | is_materialized |
+-------------------------------+---------+----------+---------------+-------------+--------+---------+-------------------------------------------------------+-----------+-----------------+
| 2019-05-24 18:41:14.247 -0700 | liners1 |          | MYDB          | PUBLIC      | TSMITH |         | create materialized views liners1 as select * from t; | false     | false           |
+-------------------------------+---------+----------+---------------+-------------+--------+---------+-------------------------------------------------------+-----------+-----------------+