“平面文件源”(471)在预执行阶段失败并返回错误代码0xC020200E。我如何阻止这种发生?

时间:2013-07-22 09:41:58

标签: ssis

嗨,我想知道你是否能帮忙......

每一周我都会收到此错误。

  

“平面文件源”(471)未执行预执行阶段并返回错误代码0xC020200E。   无法打开数据文件“G:\ Data \待处理\ RO_Orders.csv”。

我知道如果我进入平面文件连接管理器编辑器并在此位置浏览文件“G:\ Data \待处理\ RO_Orders.csv”它将起作用。 就好像我必须每周重置文件位置的位置,文件与原来的位置相同。

我没有编辑文件或移动了位置。

我有很多其他包加载不同类型的数据,它们很好。

此外,我还附加了一个记录文件,以防错误。

我也不相信这是一个所有权错误,因为我可以完美地运行其他软件包并且它们都归同一个人所有。

这是一种令人难以忍受的烦恼,我似乎无法解决为什么会发生这种情况......想法?

提前致谢。

10 个答案:

答案 0 :(得分:3)

尝试在Expressions中设置连接字符串。在ConnectionString属性下加载的文件的服务器上输入完整文件路径。

答案 1 :(得分:3)

对我来说,当通过SQL Server将包作为作业运行时,这是一个权限错误。

解决方案是将运行SQL Server的用户帐户添加到具有读/写权限的文件夹中。

答案 2 :(得分:2)

我们发现,如果我们尝试在另一个工作站(可能是另一个用户连接)上运行SSMS,那么我们就会得到这个csv访问权限。但是,如果我们从服务器本身的SSMS执行包,或者我们运行从任何地方执行包的SQL代理任务(从我的PC或从服务器启动),那么它可以正常工作。它必须做一些用户令牌切换或任何试图通过SSMS从我的PC上做的事情。

答案 3 :(得分:1)

当连接文件所在的网络驱动器(H :)时,我没有检查连接字符串以及该文件在SSIS中从哪个级别获取它。

这就是为什么我必须重置每个步骤的连接,因为它没有正确匹配。

答案 4 :(得分:0)

有同样的问题。这是我的权限/用户设置。我能够使用Set the Service Startup Account for SQL Server Agent (SQL Server Configuration Manager)来更新当前的SQL Server代理用户。

答案 5 :(得分:0)

我将检查以确保您的SQL Server服务帐户具有登录文件夹的完整权限。

遇到与您相同的问题后,我终于检查了为我们的SQL Server服务帐户创建的文件夹权限。来发现它缺少“完全控制”和“修改”文件夹权限。将这些授予我们的服务帐户后,问题就消失了。

Folder Permissions Dialog Box

答案 6 :(得分:0)

我的文件夹权限正确。我什至以控制SQL Server代理服务的用户身份登录服务器,并且可以访问该文件。 我进入了SSIS程序包,结果证明我没有完全限定网络路径。

答案 7 :(得分:0)

我遇到了类似的错误:

无法从平面文件连接管理器中检索列信息。

我将延迟验证设置为TRUE。我正在使用表达式从变量设置CSV文件的文件名。文件名已更改,但没有其他更改。即使我调试代码并知道变量设置正确,该错误仍会继续。我什至用一个旧的,有效的文件名作为占位符填充表达式变量(由脚本覆盖)。

唯一起作用的是创建一个新的连接管理器。使用变量(带有旧文件名占位符)可以立即解决问题。

因此,总之,由于我不太清楚的原因,请避免使用连接管理器。

希望这对某人有帮助。

答案 8 :(得分:0)

对我来说,我偶然在两个范围的范围内创建了一个具有相同名称的变量。在完整的SSIS程序包中创建了一个,仅针对For Each循环创建了一个。当我消除了只为for每个循环创建的循环时,我的问题就解决了。enter image description here

答案 9 :(得分:0)

对我来说,问题是我必须注册服务器。我一直在自己的服务器/数据库上开发自己的项目,在添加 For Each 循环之前,该包运行良好。仅在注册服务器时添加 For Each 循环后才再次运行。