【问题标题】:Migrate tables with special characters in Talend studio在 Talend Studio 中迁移具有特殊字符的表
【发布时间】:2018-06-12 07:16:03
【问题描述】:

我正在从表 A (DB A) 迁移到表 B (DB B),在 1 个包含法语字符(é、à、..)和特殊字符(&、'、.. ):

组件 tOracleOutput_1 中的异常 java.sql.SQLException: ORA-12899: value too large for column "DB1"."COLUMN1"."COMMENT" (实际: 121, 最大值: 118)

从 sql 编辑器查询表时,值的最大长度为 100。

如何在不丢失特殊字符和法语字符的情况下将这些值插入到新表中?

【问题讨论】:

  • 比较nls_language&nls_territoryDB ADB B的参数,并将DB B的值设置为DB A的。
  • 它们具有相同的 NLS_LANGUAGE 和 NLS_TERRITORY
  • 2 个 DB 有不同的 NLS_CHARACTERSET,DB A 有 WE8MSWIN1252,DB B 有 AL32UTF8。 标准 ASCII 字符在 WE8(...) 和 AL32UTF8 下需要 1 个字节的存储空间,而其他字符在 WE8(...) 中只需要 1 个字节的存储空间,但它们需要 2 个或更多字节AL32UTF8 中的空间。 你觉得@BarbarosÖzhan 怎么样?

标签: oracle special-characters talend


【解决方案1】:

这不是由于特殊字符。您的列太小。 你有三种可能:

  • 直接在表架构中增加列的大小。 看这里: how to modify the size of a column

  • tMap中用TRIM函数删除值前后的空白字符:StringHandling.TRIM(row1.yourcolumn)

  • 截断值以适合 tMap 中的列:StringHandling.LEFT(row1.yourcolumn,118)(您的列最多有 118 个字符)

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2011-04-11
    • 2012-09-07
    • 2014-07-16
    • 1970-01-01
    相关资源
    最近更新 更多