カテゴリ:

テーブル関数

VALIDATE

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

構文

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

引数

[namespace.]table_name

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

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

JOB_ID => query_id | _last

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

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

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

使用上の注意

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

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

    • SELECT ステートメントは、 COPY INTO <テーブル> の操作中にデータを変換するために使用されます。

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

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

    • コピー履歴メタデータの有効期限が切れました。詳細については、 メタデータのロード をご参照ください。

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

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

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

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

Snowsight の Query History ページまたは Classic Console の History 履歴タブ ページから取得したクエリ ID を指定して、エラーを返します。

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

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

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