gpt4 book ai didi

sql-server - 动态将文件名分配给excel连接字符串

转载 作者:行者123 更新时间:2023-12-04 14:36:46 26 4
gpt4 key购买 nike

这是我第一次在SQL Server 2012中使用SSIS。我可以成功读取excel文件并将其内容加载到SQL Server 2012中的表中。该任务是一个简单的直接读取excel文件,然后无需验证即复制到sql server或现在进行转换。任务成功。但是,当我尝试使程序包从变量而不是原始的硬编码中读取文件名时,它会生成错误“DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80040E4D”

我所做的只是将excel连接管理器中的硬编码连接字符串替换为一个表达式,该表达式采用了由表达式分配的变量的值

在数据流任务开始之前,已为变量分配了值。该变量已检查并且确实具有正确的值。

但是以下错误是在数据流任务启动时生成的。

如果有人能指出我的不正确做法并建议我如何解决问题,将不胜感激。

最佳答案

选项A

Excel Connection Manager的ConnectionString属性不是我要处理当前文件的地方,这与普通的Flat File Connection Manager相反。

而是将表达式放在Excel Connection Manager的ExcelFilePath属性上。

从理论上讲,ConnectionString和ExcelFilePath之间应该没有什么区别,除了您将要构建更多的“东西”以使连接字符串恰到好处。

另外,请确保以32位模式执行程序包。

选项B

您可能会遇到的另一种情况是,连接字符串的设计时值一旦运行就无效。打包开始时,它会验证所有预期资源是否可用,如果没有,则它会快速失败而不是使中间负载中断。您可以延迟此验证,直到SSIS必须实际访问资源为止,并且可以通过将DelayValidation属性设置为True来执行此操作。该属性存在于SSIS中的所有内容上,但我首先要在Excel Connection Manager中进行设置。如果仍然抛出程序包验证错误,请尝试将数据流的延迟验证也设置为true。

关于sql-server - 动态将文件名分配给excel连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com