类别:

表函数

VALIDATE

验证在过去执行 COPY INTO <table> 命令时加载的文件,并返回加载期间遇到的所有错误,而不仅仅是第一个错误。

语法

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

实参

[namespace.]table_name

指定作为加载目标的表的完全限定名称。

命名空间是表所在的数据库和/或模式,形式为 database_name.schema_nameschema_name。如果数据库和架构当前正在用户会话中使用,则此参数为 选填;否则,为必填。

JOB_ID => query_id | _last

要验证的 COPY INTO <table> 命令的 ID :

  • 可以从 Classic Console 界面中 History History 选项卡 页面的 Query ID 列获取 ID。指定查询 ID 必须针对指定的目标表。

  • 如果指定 _last,而不是 query_id,则函数将验证当前会话期间执行的最后一次加载,而不考虑指定的目标表。

使用说明

  • 对于指定 ON_ERROR = ABORT_STATEMENT (默认值)的 COPY 语句,验证不返回任何结果。

  • 如果出现以下情况,则验证失败:

    • SELECT 语句用于在 COPY INTO <table> 操作期间转换数据。

    • 当前用户无权访问 table_name

    • 当前用户不是执行 query_id 的用户,并且对该用户没有访问控制权限。

    • 复制历史记录元数据已过期。有关更多信息,请参阅 加载元数据

  • 如果在执行加载后已将新文件添加到 query_id 使用的暂存区,则在验证期间将忽略添加的新文件。

  • 如果在执行加载后已从 query_id 使用的暂存区中移除文件,则移除的文件被报告为丢失。

示例

返回上次执行的 COPY 命令的错误:

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

返回错误,方法是指定从 Snowsight 中的 Query History 页面或 Classic Console 中的 History 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
语言: 中文