如何处理Snowpipe(SNOWFLAKE)中的特殊字符

3

(将此问答序列发布在SO上,因为我相信一些新用户可能会遇到类似的“障碍”。-G)


如何处理Snowpipe中的特殊字符

我正在创建基于csv文件的snowpipe。我的csv文件在几列中包含特殊字符。请告诉我如何编写select语句以在snowpipe中处理任何特殊字符。

2个回答

3
为了处理特殊字符,你需要对它们进行转义。
有两种方法来转义特殊字符,但不幸的是每一种方法都要求你修改文件。
1) 通过重复特殊字符来转义特殊字符(例如,要转义一个',你就将其变为'')。
2) 在定义文件格式时,你可以添加ESCAPE参数来定义显式转义字符。例如,你可以使用ESCAPE='\\',然后在每个想要转义的特殊字符前面添加一个单独的\字符。

0

snowpipe命令嵌入了包含select语句(转换)的copy语句,并且我们可以使用字符串函数来去除特殊字符。

/* Data load with transformation */
COPY INTO [<namespace>.]<table_name> [ ( <col_name> [ , <col_name> ... ] ) ]
     FROM ( SELECT [<alias>.]$<file_col_num>[.<element>] [ , [<alias>.]$<file_col_num>[.<element>] ... ]
            FROM { internalStage | externalStage } )
[ FILES = ( '<file_name>' [ , '<file_name>' ] [ , ... ] ) ]
[ PATTERN = '<regex_pattern>' ]
[ FILE_FORMAT = ( { FORMAT_NAME = '[<namespace>.]<file_format_name>' |
                    TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]

上述命令是以下网址的一部分 "https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html"。

注意:我会很有兴趣看到是否还有其他人成功地使用了另一种解决方案...-G


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接