我正在将数据从Excel工作表复制到SQL服务器表。 在某些工作表中,我的数据大小超出了SQL中的表格模式。
即。表的列具有数据类型nvarchar(50),其中我的Excel表在某些shell中具有超过50个字符的数据。
现在,在复制时,具有此类数据的行不会插入到数据库中。相反,我想通过截断额外的字符来插入包含此类数据的行。我该怎么做?
答案 0 :(得分:5)
您可以使用Java的substring方法检查字符串的长度,例如:
row1.foobar.length() > 50 ? row1.foobar.substring(0,50) : row1.foobar
这使用Java的String length method来测试它是否超过50。如果是,那么它使用substring method来获取0到50之间的字符(所以前50个字符),如果是它不会返回整个字符串。
如果你在tMap或tJavaRow中弹出它,那么你应该能够将字符串限制为50个字符(或任何你想要的调整):
如果您希望删除任何不符合数据库模式的行,则应定义作业的模式以匹配数据库模式,然后使用tSchemaComplianceCheck组件过滤掉不匹配的行架构。