首页 > 解决方案 > 使用 SSIS 创建用于将 SQL Server 表导出到 excel 的包时出现问题

问题描述

我对SSIS相当陌生,所以请耐心等待:)

我正在尝试将表或存储过程(在本例中为表,因为它更容易)导出到 Excel,但在执行包时出现错误,服务器是 SQL Server,我正在使用 OLE DB 源进行连接.

这是我得到的错误:

SSIS 包“C:\xxx\Integration Services Project3\Package.dtsx”正在启动。

信息:数据流任务 1 处的 0x4004300A,SSIS.Pipeline:验证阶段开始。
信息:数据流任务 1 处的 0x4004300A,SSIS.Pipeline:验证阶段开始。
信息:数据流任务 1 处的 0x40043006,SSIS.Pipeline:准备执行阶段开始。
信息:数据流任务 1 处的 0x40043007,SSIS.Pipeline:预执行阶段开始。

错误:数据流任务 1、Excel 目标 1 1处的0xC0202009:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E21。

OLE DB 记录可用。
来源:“Microsoft Access 数据库引擎”Hresult:0x80040E21
描述:“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“worker_reference”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“placement_reference”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“worker_name”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“job_title”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“authorising_line_manager”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“company_agent_name”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“type_of_worker”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“hours_worked”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“rate_description”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“rate_per_hour”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“作业”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“work_stage”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“project_name”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC002F445,Excel 目标 1 1:为“位置”列设置绑定时出错。绑定状态为“DT_NTEXT”。

错误:数据流任务 1 中的 0xC0202025,Excel 目标 1 1:无法创建 OLE DB 访问器。验证列元数据是否有效。

错误:数据流任务 1 处的 0xC004701A,SSIS.Pipeline:Excel 目标 1 未通过预执行阶段并返回错误代码 0xC0202025。

信息:数据流任务 1 处的 0x40043008,SSIS.Pipeline:后执行阶段开始。
信息:数据流任务 1 处的 0x4004300B,SSIS.Pipeline:“Excel 目标 1”写入 0 行。
信息:数据流任务 1 处的 0x40043009,SSIS.Pipeline:清理阶段开始。

任务失败:数据流任务 1
警告:包中的 0x80019002:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (17) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。

SSIS 包“xxx\Integration Services Project3\Package.dtsx”完成:失败。
程序“[6128] DtsDebugHost.exe:DTS”已退出,代码为 0 (0x0)。

我不确定是否与我在 Excel 中创建的连接或列有关,工作簿与数据库表具有相同的列。

也许我做错的是映射,我尝试在中间进行数据转换,但我不断收到错误“无法在 unicode 和非 unicode 之间转换..”

我正在添加有关配置的更多信息:

在此处输入图像描述

这是数据转换的默认配置:

在此处输入图像描述

这是 excel 输出中的默认映射:

在此处输入图像描述

并且将所有数据转换数据类型从文本流 [DT_TEXT]更改为Unicode 文本流 [DT_NTEXT]是什么让我能够运行它并给我上面显示的错误

标签: sql-serverssis

解决方案


推荐阅读