sql - SSIS Oracle Source 只输出 1 个字符

标签 sql oracle ssis etl flat-file

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

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

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

我试过:

  • 将输出数据类型更改为 DT_WSTR - 但 SSIS 会自动将其还原
  • 使用数据转换组件将 DT_STR 转换为 DT_WSTR - 运气不好
  • 在目标组件中勾选 unicode 并取消勾选 unicode
  • 更改组件中的数据类型
  • Google 我自己死了...

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

最佳答案

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

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

关于sql - SSIS Oracle Source 只输出 1 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807533/

相关文章:

c# - 为 Oracle 返回一个记录集作为 HTML

ssis - 无法检测 SSIS 脚本组件内部的输出

sql - 如何确定 Crystal Reports 函数的用途?

sql - 为什么日志存储在平面文件中,而不是存储在数据库 (SQL) 中?

sql - 如何将 Snowflake 中的 LAG FUNCTION 与 TIMESTAMPS 一起使用?

java - Spring Data JDBC是否支持自定义类型转换器

Oracle 日期错误 - ORA-01841

mysql - SSIS MySQL ADO.net SQL 任务输入和输出

mysql - 使用SSIS将数据从mysql加载到sql server的快速方法

mysql - SQL 连接表较低的日期和较低的 ID