2011-05-02 70 views
1

的正确的数据类型我有一个简单SSIS包挑选从Oracle数据库和数据插入数据到SQL Server。在DataFlow中,我有3个任务:SSIS不能确定列

  1. 我有一个OLE DB源运行一个非常简单的查询。选择 Col1中,col2的,COL3,COL4,COL5,COL6,COL7从表。
  2. 然后我有转换COL6一个数据转换任务,并从Unicode字符串[DT_WSTR]至STRING [DT_STR] COL7。
  3. OLE DB目标(SQL服务器)。

ERROR: SSIS turns the OLE DB Source Task to Red and displays the following error:

There was an error with output column "Col3" (23) on output "OLE DB Source Output" (11). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".

The "output column "Col3" (23)" failed because truncation occurred, and the truncation row disposition on "output column "OS_VISIT_ID" (23)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.

但是COL3不文本其数值,和SSIS正在检测它作为Unicode字符串[DT_WSTR]。 我甚至试图在数据转换任务转换为OLE DB目标之前将Col3转换为数字。但我仍然得到同样的错误。

回答

2

点击错误输出 - 选择截断,然后选择重定向行。然后在源之后添加联盟阶段,以将常规输出与“错误”行连接起来。将数据查看器附加到错误行,并查看它抱怨的数据类型。它现在将正常运行该任务。

PS:有些古怪提供商司机-require-你要做到这一点,尽管它从来没有“失败”本身。例如Acucorp XBDC驱动程序(读取一些奇怪的db格式的平面文件) - 如果您没有设置错误输出,即使每一行都会在经过配置的错误行后才会通过正常输出,将会失败。