【问题标题】:SSIS Multiple-step OLE DB operation generated errorsSSIS 多步 OLE DB 操作生成错误
【发布时间】:2013-02-11 21:10:34
【问题描述】:

好吧,我不怎么解释这个问题,我有两个 OLE DB 连接需要合并并发送到一个 oledb 目标,源 oledb 列是:

tbl 客户总数:

RUT_CLIE numeric(18,0), 
DV(string(1)), CLI_NOM(string(40)), 
CLI_CAT_SUB(string(3)), 
CLI_STA(string(5)), 
CLI_SUB_STA(string(5)), 
**COD_CTR (numeric(18,0))  <- JOIN KEY**, 
nom_ejec(string(50)),
nom_suc(string(100)), 
nom_suc_gpo(string(100)), 
zonal(string(50)), 
id_cargo(string(50)), 
CLI_GRP_NOM(string(25)),  
CANAL(string(50)), 
ACTIVO(int), 
VINCULADO(int), 
VINCULADO_TRX(int), 
CTACTE(int), 
CLI_CAT(string(5))

tbl cartera 1 1:

cod_cartera (numeric(18,0))  <- JOIN KEY
cargo(string(100)),
nom_suc_gpo(string(100))

目的地:

映射:

我需要将许多列转换为 nvarchar(255),(我认为这是问题所在),但是当我运行程序时,会发生这种情况:

错误信息:

[OLE DB 目标 [5679]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。 发生 OLE DB 错误。错误代码:0x80040E21。 OLE DB 记录 可用。来源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80040E21 说明:“多步 OLE DB 操作 产生的错误。检查每个 OLE DB 状态值(如果可用)。不 工作完成了。”。

[OLE DB 目标 [5679]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 “输入”OLE DB Destination 输入“(5692)”失败,因为出现错误代码 0xC020907B,并且 “输入“OLE DB 目标输入”(5692)”上的错误行处置 指定错误失败。指定对象发生错误 的指定组件。之前可能有错误信息发布 这包含有关失败的更多信息。

[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。这 组件“OLE DB 目标”(5679) 上的 ProcessInput 方法失败 处理输入“OLE DB 目标”时出现错误代码 0xC0209029 输入” (5692)。已识别的组件从 处理输入法。该错误是特定于组件的,但 错误是致命的,将导致数据流任务停止运行。 在此之前可能会发布带有更多信息的错误消息 关于失败。

[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。这 组件“排序”(4898) 上的 ProcessInput 方法失败并出现错误代码 0xC0047020 处理输入“排序输入”(4899)。确定的 组件从 ProcessInput 方法返回错误。错误是 特定于组件,但错误是致命的,将导致 数据流任务停止运行。可能会发布错误消息 在此之前提供有关失败的更多信息。

警告:

[SSIS.Pipeline] 警告:警告:无法打开全局共享内存 与性能 DLL 通信;数据流性能计数器 不可用。要解决,请以管理员身份运行此包, 或在系统的控制台上。

请帮忙,我现在真的很沮丧和压力,所以我无法更好地解释自己,如果您有不明白的地方,请询问,我会努力使它变得更好。

【问题讨论】:

  • 您需要发布“在此之前可能会发布错误消息以及有关失败的更多信息”的详细信息。
  • 正如 Beth 所说,继续查看错误日志(非常冗长),直到找到实际错误。上面发的消息没什么用,在此之前会有更有用的东西。
  • 另一种可能有用的故障排除技术是将 OLE 目标的错误输出重定向到平面文件,这样您至少可以看到哪些记录导致了问题。
  • 添加警告消息,如果我得到更好的东西,我会尝试使用平面目的地
  • 微软错误代码很糟糕。他们真的需要简化它。

标签: ssis oledbconnection


【解决方案1】:

如果没有看到您的 OLE DB 目标组件中的实际列映射,我无法确定,但事实上 COD_CTR 在 tbl clientes totales 中定义为 NUMERIC(18,0),在 @987654323 中定义为 NVARCHAR(4) @ 看起来很可疑。

【讨论】:

  • 最初它是一个 char(4),我尝试将其更改为字符串、整数、数字,但仍然无法正常工作,并且在相同的行数 (7756) 中失败。 (添加映射)
【解决方案2】:

Edmund Schweppe 给了我这个想法,问题是数据转换,我必须将所有元数据转换到同一个 oledb 目的地,像这样:

(与 dbo.RUTERO_FICHA_RED 表目标的数据类型相同)。

感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多