Snowflake中使用COPY命令处理定长文件报错及实现需求
解决Snowflake COPY INTO处理定长文件的报错问题
错误原因
Snowflake的文件格式类型没有Fixed这个有效值,处理定长格式的文本文件,需要使用CSV类型并配合特定参数来实现。
修正后的COPY INTO命令
COPY INTO <table_name> FROM <snowflake stage> FILE_FORMAT = ( TYPE = CSV FIELD_OPTIONALLY_ENCLOSED_BY '' FIELD_POSITIONS = (1,4,21,34) FIELD_NAMES = (Field_1,Field_2,Field_3,Field_4) ) ON_ERROR = 'Continue' VALIDATION_MODE = Return_all_errors;
关键参数说明
TYPE = CSV:这是Snowflake处理定长文件的标准方式,通过后续参数覆盖CSV的默认行为FIELD_OPTIONALLY_ENCLOSED_BY '':禁用字段的引号包裹,定长文件不需要用引号区分字段FIELD_POSITIONS:按1-based索引定义每个字段的起始位置,和你原命令中的配置一致- 保留
ON_ERROR和VALIDATION_MODE参数,满足你继续执行并返回所有错误的需求
内容的提问来源于stack exchange,提问作者Pavankumar Mothkuri
相关产品推荐
相关产品推荐

