背景 在BIDS中创建包。 部署到SSMS 包将文件写入网络文件服务器中的CSV文件。 包的平面文件目的地的默认名称是$ path \ workcsvout.csv 包从表达式
派生文件名问题 当我从SSMS配置并运行时,它失败并显示错误DFT -Extract to File:错误:无法打开数据文件" ........ \ DerivedFilename。
疑难解答
验证文件存在于目录中 - 使用平面文件目标临时文件名,在派生文件名之前 - 仍然失败 将名称更改为试图打开的文件 - 仍然失败
我正在SSMS登录,通过SSISDB运行工作 - 项目 - 包 - .dtsx包 - 执行
答案 0 :(得分:2)
尝试直接从Integration Services目录运行包后确保Visual Studio未打开,因为我发现VS可以挂起到您正在写入的文件的连接,并且它可能会引发类似的错误
确保为程序包配置的帐户在其需要写入的所有区域中具有足够的权限。
关闭VS并在步骤2中设置权限后,尝试直接在SSMS中的Integration Services目录中执行包。如果这样做,请转到步骤4.如果这不起作用,请排除错误并确保安全性正确设置,并且您正在使用相同的帐户执行包。
如果您在这里,我会假设您要安排包裹。确保所有者与步骤2中使用的帐户相同。检查作业中步骤中的“运行方式”帐户,如果该帐户与步骤2不同,则您需要将其设为相同或将该帐户设为与步骤2中使用的帐户具有相同的访问权限。
我经历了这个故障排除过程,它解决了我的问题。我还在一般的UNC文件路径上构建文件,如\ servername \ folder \ folder,而无需与其他人推荐的\ servername \ d $ \ folder \文件夹进行任何本地业务。
答案 1 :(得分:0)
故障排除:
您可以尝试在本地创建文件,然后使用文件系统任务移动文件。
答案 2 :(得分:0)
我试图抽取csv文件中的数据。 关闭visual studio并关闭在另一台机器上打开的csv文件解决了问题
答案 3 :(得分:0)
我将检查以确保您的SQL Server服务帐户具有登录文件夹的完整权限。
遇到与您相同的问题后,我终于检查了为我们的SQL Server服务帐户创建的文件夹权限。来发现它缺少“完全控制”和“修改”文件夹权限。将这些授予我们的服务帐户后,问题就消失了。