SSIS Oracle Source 仅输出 1 个字符
Posted
技术标签:
【中文标题】SSIS Oracle Source 仅输出 1 个字符【英文标题】:SSIS Oracle Source outputs only 1 character 【发布时间】: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 【参考方案1】:我认为问题出在目标平面文件列元数据。
打开目标平面文件管理器,转到高级选项卡,单击目标列并确保列长度为30
【讨论】:
以上是关于SSIS Oracle Source 仅输出 1 个字符的主要内容,如果未能解决你的问题,请参考以下文章
SSIS Passing Parameters to an ADO .NET Source query;向ado.net数据源传递参数。