我正在尝试使用 | 创建 BCP 文件分隔符,然后将其加载到雪花表中。
问题: 在 SQL Server 中,有些列定义为 CHAR(4) 并具有值“sss” 所以当我执行 BCP 时,它被填充到 4“sss”的长度并加载到雪花 由于这个原因,我们的报告失败了,因为它们做了类似 where column="SSS"的操作,但由于雪花中的尾随空格,正确的列没有显示。
我们不想更改我们的报告。那么,BCP 有没有办法处理这些列的填充或修剪呢?
请注意,有 24 个表,每个表大约有 130 多个列,因此我无法在每个 char 列上放置 Trim 函数
最佳答案
如果您的 BCP 文件保留尾随空格,那么 Snowflake 也会保留它,只要该字段被 FIELD_OPTIONALLY_ENCLOSED_BY 为“或 '。您可能还需要确保您的 TRIM_SPACE 选项在您的格式中正确设置COPY INTO 命令的定义。
如果您的 BCP 文件没有维护该空间,并且您不知道如何让它发挥作用,您可以在 COPY INTO 命令期间使用 SELECT 中的一些字符串函数强制恢复该空间,或者您可以为您的报表创建一个 View ,该 View 执行相同的字符串函数集,以强制您的报表使用空间。
关于mysql - BCP CHAR 值转为雪花,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58881092/