カテゴリ:

テーブル関数

VALIDATE

COPY INTO <テーブル> コマンドの過去の実行でロードされたファイルを検証し、最初のエラーだけでなくロード中に発生したすべてのエラーを返します。

構文

VALIDATE( [<namespace>.]<table_name> , JOB_ID => { '<query_id>' | '_last' } )

引数

[namespace.]table_name

ロードのターゲットになっていたテーブルの完全修飾名を指定します。

名前空間は、 database_name.schema_name または schema_name の形式の、テーブルが存在するデータベースおよび/またはスキーマです。ユーザーセッション内でデータベースとスキーマが現在使用されている場合は オプション です。それ以外の場合は必須です。

JOB_ID => query_id | _last

検証する COPY INTO <テーブル> コマンドの ID です。

  • ID は、 classic web interface の History History tab ページにある Query ID 列から取得できます。指定されたクエリ ID は、指定されたターゲットテーブルに対するものでなければなりません。

  • query_id の代わりに _last が指定されている場合、指定されたターゲットテーブルに関係なく、関数は現在のセッション中に実行された最後のロードを検証します。

使用上の注意

  • この関数は、ロード中にデータを変換する COPY INTO <テーブル> ステートメントの SELECT リストを無視します。この関数は、ステートメントで参照されているファイルを解析し、解析エラーを返します。関数が COPY INTO <テーブル> 式のコンテキストでファイルを評価することを期待している場合、この動作は驚くべきものになる可能性があります。

  • 検証は、 ON_ERROR = ABORT_STATEMENT (デフォルト値)を指定する COPY ステートメントに対して結果を返しません。

  • 次の場合、検証は失敗します。

    • 現在のユーザーは table_name にアクセスできません。

    • 現在のユーザーは query_id を実行したユーザーではなく、このユーザーに対するアクセス制御権限がありません。

  • ロードが実行されてから query_id が使用するステージに新しいファイルが追加されている場合、追加された新しいファイルは検証中に無視されます。

  • ロードが実行されてからファイルが query_id によって使用されるステージから削除された場合、削除されたファイルは見つからないと報告されます。

最後に実行された COPY コマンドのエラーを返します.

SELECT * FROM TABLE(VALIDATE(t1, JOB_ID => '_last'));

Snowsightの Query History ページまたは従来のウェブインターフェイスの History History tab ページから取得したクエリIDを指定して、エラーを返します。

SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));

上記と同じクエリですが、後で参照できるように結果をテーブルに保存します。

CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));
最上部に戻る