【发布时间】: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