GET_VIEWS

説明

ストアドプロシージャ GET_VIEWS は、ビューに関する情報を返します。返される結果を複数のパラメータ (ビュー名やビュータイプなど) でフィルタできます。各行は、ビューを表します。

ビューだけではなく、任意のタイプのエレメントに関する情報を取得する場合は、 GET_ELEMENTS プロシージャを使用します。

構文

GET_VIEWS (
      input_database_name : text
    , input_name : text
    , input_user_creator : text
    , input_last_user_modifier : text
    , input_init_create_date : date
    , input_end_create_date : date
    , input_init_last_modification_date : date
    , input_end_last_modification_date : date
    , <input_view_type>
    , <input_swap_active>
    , <input_cache_status>
    , input_description : text
)

<input_view_type> ::=
      0  // Base views
    | 1  // Derived views
    | 2  // Interface views
    | 3  // Materialized tables

<input_swap_active> ::=
      0  // Swapping status is "Default"
    | 1  // Swapping status is "On"
    | 2  // Swapping status is "Off"

<input_cache_status> ::=
      0  // Cache mode is "Off"
    | 1  // Cache mode is "Partial exact"
    | 2  // Cache mode is "Partial"
    | 3  // Cache mode is "Full"
    | 4  // Cache mode is "Partial exact preload"
    | 5  // Cache mode is "Partial preload"
  • このプロシージャを CALL で呼び出し、パラメータでフィルタしない場合は、 null を渡します。

  • このプロシージャは、AND 条件を使用して入力パラメータを評価します。たとえば、 input_databaseinput_name 、および input_description に値を渡すと、このプロシージャは、このデータベース かつ この名前の、 かつ この説明を含むビューを検索して返します。

  • このプロシージャは、等号の代わりに LIKE 演算子を使用して以下のパラメータを評価します。

    • input_name

    • input_user_creator

    • input_last_user_modifier

    • input_description

    つまり、これらのパラメータの値では、LIKE とともに使用するワイルドカード演算子 (%_) を使用できます。説明による検索では大文字と小文字は区別されません。

  • input_init_create_date および input_end_create_date 、または input_init_last_modification_date および input_end_last_modification_date の値を指定した場合、このプロシージャはこれら 2 つの期間に作成されたビューを返します。たとえば、 input_init_create_date および input_end_create_date の値を指定した場合、このプロシージャはこの 2 つの日付の間に作成されたビューを返します。

    input_init_create_datenull の場合、このプロシージャは input_end_create_date より前に作成されたすべてのビューを返します。

    input_end_create_datenull の場合、このプロシージャは input_init_create_date より後に作成されたすべてのビューを返します。 input_init_last_modification_date および input_end_last_modification_date で検索する場合も同じように機能します。


このプロシージャは、以下のフィールドを返します。

  • database_name: ビューが属すデータベースの名前。

  • name: ビューの名前。

  • type: この値は常に「view」です。

  • user_creator: ビューの所有者。

  • last_user_modifier: ビューを最後に変更したユーザー。ビューが一度も変更されていない場合、この値は user_creator と同じです。

  • create_date: ビューが作成された日付。

  • last_modification_date: ビューが最後に変更された日付。ビューが一度も変更されていない場合、この値は create_date と同じです。

  • description: ビューの説明。

  • view_type: 想定される値は以下のとおりです。

    • 0: 基本ビュー

    • 1: 派生ビュー

    • 2: インターフェイスビュー

    • 3: マテリアライズドテーブル

  • swap_active: 想定される値は以下のとおりです。

    • 0: スワップステータスが「Default」

    • 1: スワップステータスが「On」

    • 2: スワップステータスが「Off」

  • cache_active: 想定される値は以下のとおりです。

    • 0: キャッシュモードが「Off」

    • 1: キャッシュモードが「Partial exact」

    • 2: キャッシュモードが「Partial」

    • 3: キャッシュモードが「Full」

    • 4: キャッシュモードが「Partial exact preload」

    • 5: キャッシュモードが「Partial preload」

  • folder: ビューのフォルダ (小文字)。ビューがフォルダに格納されていない場合、この値は / です。

必要な権限

このプロシージャの結果は、それを実行するユーザーに付与されている権限によって異なります。ユーザーが管理者ユーザーではない場合、このプロシージャはそのユーザーが Metadata 権限を持っているプロシージャに関する情報のみを返すことに注意してください。その意味は以下のとおりです。

  • ユーザーが管理者の場合、このプロシージャはすべてのビューに関する情報を返します。

  • ユーザーが 1 つ以上のデータベースの管理者の場合、このプロシージャはそのデータベースのすべてのビューに関する情報を返します。

  • このプロシージャは、ユーザーが Metadata 権限を持っているすべてのビューに関する情報を返します。

例 1

SELECT *
FROM GET_VIEWS()
WHERE input_database_name = 'customer_report' AND folder = '/base views'

データベース「customer_report」の特定のフォルダ内にあるすべてのビューを取得します。 folder はこのプロシージャの入力パラメータではありません。このため、実行エンジンは、パラメータ input_database_name を渡してこのプロシージャを実行します。返される結果は、そのデータベース内のすべてのビューに関する情報です。次に、実行エンジンはこの結果をフィルタして、「base views」という名前のフォルダのみを返します。

例 2

SELECT view_info.database_name, name, view_info.type as view_type, user_creator AS owner, index_name, view_index.type AS index_type, ordinal_position, column_name, asc_or_desc, filter_condition
FROM GET_VIEWS() AS view_info
LEFT OUTER JOIN GET_VIEW_INDEXES() AS view_index ON view_info.database_name = view_index.input_database_name
    AND view_info.name = view_index.input_view_name
WHERE view_info.input_database_name = 'customer360';

このクエリは、データベース「customer360」のすべてのビューとそのインデックス (存在する場合) を返します。このクエリには 「GET_VIEWS」と「GET_VIEW_INDEXES」の LEFT OUTER JOIN が存在するため、インデックスのないビューも結果に追加されます。

例 3

SELECT *
FROM GET_VIEWS()
WHERE
    input_database_name = 'customer_report'
AND (input_init_create_date = ADDDAY(CURRENT_DATE, -1));

昨日の午前 0 時以降に作成されたデータベース「customer_report」のすべてのビューを取得します。

例 4

SELECT *
FROM GET_VIEWS()
WHERE input_description = '%report%';

このクエリは、説明に「report」という単語が含まれているすべてのビューを返します。