【问题标题】:SSIS Oracle Source outputs only 1 characterSSIS Oracle Source 仅输出 1 个字符
【发布时间】:2019-11-10 10:47:06
【问题描述】:

我正在尝试制作一个 SSIS 包,该包从 Oracle 数据库中的视图中提取数据并将其保存在一个平面文件中。没有封面,什么都没有。

我的问题是,当我预览源组件中的数据时,它看起来正确并返回 ex。 “1000200”(发票号)。 但是当我在平面文件目标中预览数据时,它会截断数据,所以我看到的只是“1”。如果我运行包也会持续存在(必须将 ValidateExternalMetaData 设置为 false 才能这样做)。

Oracle 源中的数据类型为 varchar2(30),SSIS 将其标识为 DT_STR (30)。

我试过了:

  • 将输出数据类型更改为 DT_WSTR - 但 SSIS 会自动恢复
  • 使用数据转换组件将 DT_STR 转换为 DT_WSTR - 运气不好
  • 在目标组件中勾选 unicode 和取消勾选 unicode
  • 更改组件中的数据类型
  • 谷歌自己死...

非常感谢我能得到的所有帮助。

【问题讨论】:

  • 如果没有看到数据流真的很难说,但是如果你必须关闭验证才能让它运行的话,那是有问题的。保留验证并检查您在尝试运行(或验证)时遇到的错误 - 这将使追踪问题变得更加容易。顺便说一句:您的文件目标的代码页是什么?
  • 如果我启用验证,我会得到:SSIS.Pipeline: "Oracle Source" 验证失败并返回验证状态 "VS_NEEDSNEWMETADATA" 代码页为 ANSI 1252

标签: sql oracle ssis etl flat-file


【解决方案1】:

我认为问题出在目标平面文件列元数据。

打开目标平面文件管理器,转到高级选项卡,单击目标列并确保列长度为30

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2015-04-11
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多