mysql - BCP CHAR 值转为雪花

标签 mysql sql padding bcp snowflake-cloud-data-platform

我正在尝试使用 | 创建 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/

相关文章:

php - MySQL REST API 服务器上的连接过多 (PHP Yii2)

MySQL - 保持 View 时查询速度慢

mysql - 查询错误#1241

mysql - 在mysql中加入两个大表使服务器超时

html - 删除 Squarespace 上的默认页边距

从从数据库服务器复制时,MySQL 复制失败

MYSQL嵌套内连接查询

java - 如何在 java 和 hibernate 中存储精确的精度值?

encryption - SonarQube : Make sure that encrypting data is safe here. AES/GCM/NoPadding、RSA/ECB/PKCS1Padding

css - 不能将边距和填充设置为 0