SSIS无法获取列值并将其设置为NULL

时间:2016-03-08 17:03:52

标签: sql-server oracle ssis netezza

我有一个SSIS包,它从Oracle表中读取数据并将其放入Netezza表中。由于某种原因,SSIS无法读取特定的列值(2%的记录),如此处的屏幕截图所示。

enter image description here

Oracle中的列类型是NUMBER(3),而在我的Netezza表中它是SMALLINT。知道为什么会这样吗?

错误列也没有给我任何信息。

到目前为止我尝试了什么:

  1. 尝试使用此MSDN article获得更好的错误说明。
  2. 将批量大小从默认的1000减少到100.
  3. 提前感谢您的帮助。

    修改

    我让它失败了,这是我得到的错误消息。我的笔记本电脑上有 4 GB 内存。这可能是一个问题吗?

    [DESTINATION_TABLE 2]错误:发生了打开数据库连接(ODBC)错误。插入行35244时,SQLExecute返回错误

    [DESTINATION_TABLE 2]错误:发生了打开数据库连接(ODBC)错误。州:' HY008'。本机错误代码:51。操作已取消

    [DESTINATION_TABLE 2]错误:发生了打开数据库连接(ODBC)错误。州:' 01000'。本机错误代码:1。无法写入nzlog / bad files

    [DESTINATION_TABLE 2]错误:发生了打开数据库连接(ODBC)错误。州:' 01000'。本机错误代码:1。无法写入nzlog / bad files

    [DESTINATION_TABLE 2]错误:发生了打开数据库连接(ODBC)错误。州:' HY000'。本机错误代码:46。错误:外部表:错误输入行的计数达到最大错误限制

    [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件" DESTINATION_TABLE"上的ProcessInput方法(2)在处理输入" ODBC目的地输入"时,错误代码为0x80004005失败(13)。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

    [SOURCE_TABLE [63]]错误:无法将行添加到输出缓冲区

    [SOURCE_TABLE [63]]错误:发生了打开数据库连接(ODBC)错误。

    [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 SOURCE_TABLE上的PrimeOutput方法返回错误代码0x80004005。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

1 个答案:

答案 0 :(得分:1)

您是否在数据流中尝试过数据转换?尝试在SSIS中将数字转换为(DT_I2)然后它应该工作我相信