gpt4 book ai didi

sql-server - 在 Talend 中处理数据截断

转载 作者:行者123 更新时间:2023-12-03 18:42:39 26 4
gpt4 key购买 nike

我正在将数据从 Excel 工作表复制到 SQL 服务器表。在一些工作表中,我的数据在 SQL 中的表架构中更大。

即表列的数据类型为 nvarchar(50),因为我的 Excel 工作表在某些 shell 中有超过 50 个字符的数据。

现在在复制时,具有此类数据的行不会被插入到数据库中。相反,我想通过截断额外的字符来插入包含此类数据的行。我该怎么做?

最佳答案

您可以使用 Java 的子字符串方法来检查字符串的长度,例如:

row1.foobar.length() > 50 ? row1.foobar.substring(0,50) : row1.foobar

这使用 Java 的 String length method测试它是否长于 50。如果是,则它使用 substring method获取 0 到 50 之间的字符(即前 50 个字符),如果不是,则返回整个字符串。

如果你在 tMap 或 tJavaRow 中弹出它,那么你应该能够将字符串限制为 50 个字符(或者通过一些调整你想要的任何字符):

Example of using the s.substring() method in a tMap

如果您希望删除任何不符合您的数据库架构的行,那么您应该定义作业的架构以匹配数据库架构,然后使用 tSchemaComplianceCheck组件过滤掉与该架构不匹配的行。

关于sql-server - 在 Talend 中处理数据截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com