【发布时间】: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