SSIS 无法获取列值并将其设置为 NULL
SSIS failing to get column value and setting it to NULL
我有一个 SSIS 包,它从 Oracle table 读取数据并将其放入 Netezza table。出于某种原因,SSIS 无法读取特定列值(2% 的记录),如此处的屏幕截图所示。
Oracle 中的列类型是 NUMBER(3),而在我的 Netezza table 中是 SMALLINT。知道为什么会这样吗?
错误列也没有给我任何信息。
目前我尝试过的:
- 尝试使用此 MSDN article 获得更好的错误描述。
- 将批量大小从默认的 1000 减少到 100。
在此先感谢您的帮助。
编辑
我让它失败了,这是我收到的错误消息。我的笔记本电脑有 4 GB 内存。这会是个问题吗?
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。 SQLExecute 在插入行 35244
时返回错误
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'HY008'。本机错误代码:51。操作已取消
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'01000'。本机错误代码:1.无法写入 nzlog/bad 个文件
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'01000'。本机错误代码:1.无法写入 nzlog/bad 个文件
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'HY000'。本机错误代码:46。错误:外部 Table:错误输入行数达到最大错误限制
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件 "DESTINATION_TABLE" (2) 上的 ProcessInput 方法在处理输入 "ODBC Destination Input" (13) 时失败,错误代码为 0x80004005。标识的组件从 ProcessInput 方法返回错误。该错误特定于组件,但该错误是致命错误,将导致数据流任务停止 运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SOURCE_TABLE [63]] 错误:无法将行添加到输出缓冲区。
[SOURCE_TABLE [63]] 错误:发生打开数据库连接 (ODBC) 错误。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 SOURCE_TABLE 上的 PrimeOutput 方法返回错误代码 0x80004005。当管道引擎调用 PrimeOutput() 时,该组件返回了一个失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
您是否尝试过在数据流中进行数据转换?尝试在 SSIS 中将数字转换为 (DT_I2),然后我相信它会起作用
我有一个 SSIS 包,它从 Oracle table 读取数据并将其放入 Netezza table。出于某种原因,SSIS 无法读取特定列值(2% 的记录),如此处的屏幕截图所示。
Oracle 中的列类型是 NUMBER(3),而在我的 Netezza table 中是 SMALLINT。知道为什么会这样吗?
错误列也没有给我任何信息。
目前我尝试过的:
- 尝试使用此 MSDN article 获得更好的错误描述。
- 将批量大小从默认的 1000 减少到 100。
在此先感谢您的帮助。
编辑
我让它失败了,这是我收到的错误消息。我的笔记本电脑有 4 GB 内存。这会是个问题吗?
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。 SQLExecute 在插入行 35244
时返回错误[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'HY008'。本机错误代码:51。操作已取消
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'01000'。本机错误代码:1.无法写入 nzlog/bad 个文件
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'01000'。本机错误代码:1.无法写入 nzlog/bad 个文件
[DESTINATION_TABLE 2] 错误:发生打开数据库连接 (ODBC) 错误。状态:'HY000'。本机错误代码:46。错误:外部 Table:错误输入行数达到最大错误限制
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件 "DESTINATION_TABLE" (2) 上的 ProcessInput 方法在处理输入 "ODBC Destination Input" (13) 时失败,错误代码为 0x80004005。标识的组件从 ProcessInput 方法返回错误。该错误特定于组件,但该错误是致命错误,将导致数据流任务停止 运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SOURCE_TABLE [63]] 错误:无法将行添加到输出缓冲区。
[SOURCE_TABLE [63]] 错误:发生打开数据库连接 (ODBC) 错误。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 SOURCE_TABLE 上的 PrimeOutput 方法返回错误代码 0x80004005。当管道引擎调用 PrimeOutput() 时,该组件返回了一个失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
您是否尝试过在数据流中进行数据转换?尝试在 SSIS 中将数字转换为 (DT_I2),然后我相信它会起作用