【问题标题】:SSIS Oracle Data Load is IncompleteSSIS Oracle 数据加载不完整
【发布时间】:2012-06-11 07:38:59
【问题描述】:

我有一个数据流任务,在将近 400k 行数据流失败并出现以下错误后,从 oracle 源获取数据并将其存储在 SQL Server DB 中。

ORA-01489 字符串连接结果太长

我的执行结果是 [Oracle Source [1543]] 错误:这到底是什么意思。

【问题讨论】:

  • “字符串连接的结果太长” - 这似乎不言自明.....

标签: oracle sql-server-2008 oracle11g ssis


【解决方案1】:

我假设您使用的是限制为 4000 个字符的 varchar2 数据类型。

这个错误是因为连接的字符串返回超过 4000 个字符的 varchar2 超过了尝试使用CLOB datatype.的限制

http://nimishgarg.blogspot.in/2012/06/ora-01489-result-of-string.html

【讨论】:

  • 我真的对 ORCALE 查询一无所知,但似乎如果我使用 SELECT COL1,COL2 FROM TABLE1 WHERE COL1="humans" 并假设我的 COL2 是 VARCHAR2 类型,我的然后选择查询
  • @PratikGupta 你能发布包含 concat 操作的整个查询吗?
  • 这只是一个 [SELECT * FROM view_item_details] 它只是一个视图。
  • @Pratik 那么您的视图定义必须包含一个字符串连接,导致字符串大于字段的字符限制。我认为你应该考虑接受这个答案:-)
【解决方案2】:

在源代码之后使用派生列将字符串剪切为 4000 个字符

【讨论】:

  • Diego 我将目的地的长度保持为 MAX,但我认为即将到来的 oracle 数据不固定,这会导致问题。您能解释一下派生列将如何提供帮助吗:
  • 这会有所帮助,因为在我看来,错误是在到达目的地之前发生的。错误实际发生在哪里?
  • 迭戈我已经更新了我的问题并发布了错误发生的确切位置。请您帮忙。
【解决方案3】:

您的数据源 (Oracle) 正在发送大于 4000 个字符的字符串,而您的 SSIS 源期望的字符串少于此。检查您的来源是否有任何长度 > 4000 的数据。

【讨论】:

    【解决方案4】:

    经过长时间的战斗,我决定修改包,结果再次删除并创建所有任务已经解决了问题。

    我仍然不知道真正的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-22
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      相关资源
      最近更新 更多