Excel 源未能通过预执行阶段并返回错误代码 0xC0207013,需要参数

Posted

技术标签:

【中文标题】Excel 源未能通过预执行阶段并返回错误代码 0xC0207013,需要参数【英文标题】:Excel Source failing the pre-execute phase and returned error code 0xC0207013, expecting parameters 【发布时间】:2014-05-28 08:46:59 【问题描述】:
SELECT UCase(LTRIM(RTRIM(c.F2))) AS Name,c.F2 AS NameProperCase,c.F3 As Initials, c.F4 As CountryCode
FROM  `Country$` c

我在 SSIS Excel 源中将上述查询作为其 SQL 命令。在 Excel 源代码编辑器中,我可以成功单击预览并从 Excel 文件中查看查询返回的示例数据。

我已将我的 Excel 连接管理器配置为 第一行没有列标题。

当我尝试执行我的包时,它在这个 Excel 源中失败,并且下面的错误被记录到我的文本日志文件中。

SQL命令需要3个参数,但参数映射只有0个参数。

SQL命令需要3个参数,但只有参数映射 有 0 个参数。

SQL命令需要3个参数,但只有参数映射 有 0 个参数。

"Excel Source 2" (2303) 执行前阶段失败并返回 错误代码0xC0207013。

"Excel Source 2" (2303) 执行前阶段失败并返回 错误代码0xC0207013。

"Excel Source 2" (2303) 执行前阶段失败并返回 错误代码0xC0207013。

如果我将 Excel 连接管理器重新配置为 第一行有列名,然后将 Excel 源查询替换为下面的查询,则程序包运行良好且没有错误

SELECT UCase(LTRIM(RTRIM(c.Name))) AS Name,c.Name AS NameProperCase,c.Initials, c.CountryCode
FROM  `Country$` c

我在查询中没有任何参数,但我得到“SQL 命令需要 3 个参数,但参数映射只有 0 个参数。”在日志文件中。

失败和成功的 Excel 源之间的唯一区别是第一行有列名(成功没有错误)和第一行没有列名(失败并出现上面发布的错误)的设置

【问题讨论】:

【参考方案1】:

我也遇到过同样的问题,首先我通过将 excel 连接管理器属性 -> FirstRowHasColumn 更改为 False 来运行包。我可以预览数据,但只有在运行时才会出现此错误。

经过几次谷歌搜索后没有答案。然后发现了自己。

原因是我没有在配置文件或属性中更改 excel 连接字符串。将连接字符串 HDR 更改为 NO 后,它工作正常。 HDR=否

右键excel连接管理器->属性->连接字符串找到值HDR。 如果 HDR=YES 则将其更改为 NO。如果您有配置文件,请确保在配置文件中也执行相同的操作。干杯!

【讨论】:

以上是关于Excel 源未能通过预执行阶段并返回错误代码 0xC0207013,需要参数的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 无法检索列 varchar(max) 的长数据

在“安装”阶段发生异常。 System.Security.SecurityException: 未找到源,但未能

SSIS 数据流任务在执行预执行阶段时挂起

JS中的预编译(词法分析)阶段和执行阶段

JavaScript的预编译和执行

第112天:javascript中函数预解析和执行阶段