sql-server - 使用 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]是什么让我能够运行它并给我上面显示的错误
解决方案
推荐阅读
- automation - 在每个环境中使用不同的 URL 运行相同的 Testcafe 测试
- python - 为turtle构建内置文本字段,while语句不起作用
- java - Spring boot 测试 API 和存储库的多个类
- vb.net - 如何将 Internet 浏览器从 Internet Explorer 7 更改为 Visual Basic 中的较新版本
- javascript - 在 Highcharts 中添加超过 3 个 y 轴。不显示第 4 个 y 轴值
- vb.net - 在 VB.NET 中使用 NHibernate 添加类型列长文本时插入或更新失败
- mocking - SoapUI 模拟响应 - 脚本返回 null
- javascript - 从特定移动设备重定向 href
- amazon-web-services - ALB -> 在 Elastic Beanstalk 上运行的多个容器
- php - 如何解决我在图库中的某些图像根本没有显示的问题?