加载 CSV 时,可以选择将VALIDATION_MODE与COPY INTO命令一起使用。 这将为我们提供该csv中所有记录中的错误列表。
COPY INTO "PUBLIC"."TableCSV"
FROM @my_csv_stage
FILES = ('TableCSV.csv')
VALIDATION_MODE = 'RETURN_ERRORS';
加载 JSON 时,所有这些都不起作用:
COPY INTO "PUBLIC"."TableJSON1"
FROM @my_json_stage
FILES = ('TableJSON1.json')
MATCH_BY_COLUMN_NAME = CASE_SENSITIVE
VALIDATION_MODE = 'RETURN_ERRORS';
COPY INTO "PUBLIC"."TableJSON2"
FROM (
SELECT $1:"col1" :: VARCHAR
,$1:"col2" :: VARCHAR
FROM @my_json_stage
)
FILES = ('TableJSON2.json')
VALIDATION_MODE = 'RETURN_ERRORS';
COPY INTO "PUBLIC"."TableJSON3"
FROM (
SELECT $1:"col1" :: VARCHAR
,$1:"col2" :: VARCHAR
FROM @my_json_stage
)
FILES = ('TableJSON3.json');
SELECT * FROM TABLE(VALIDATE("TableJSON3", job_id => '_last'));
我可以看到this snowflake page上的第一个示例具有我想要的JSON确切表,但是当我执行
SELECT * FROM TABLE(VALIDATE("TableJSON3", job_id => '_last'));
它给我这个错误:
SQL compilation error: JSON/XML/AVRO file format can produce one and only one column of type variant or object or array. Use CSV file format if you want to load more than one column.
答案 0 :(得分:0)
这是雪花中的已知问题。工程团队已意识到该问题,并且正在积极寻求解决方案。目前,修复时间表上没有ETA。