- 类别:
VALIDATE¶
验证在过去执行 COPY INTO <table> 命令时加载的文件,并返回加载期间遇到的所有错误,而不仅仅是第一个错误。
语法¶
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 <table> 命令的 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'));
返回错误,方法是指定从 Snowsight 中的 Query History 页面或 Classic Console 中的 History 页面获取的查询 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'));