不能批量加载,因为文件不能被打开。操作系统错误代码3
我试图将一个存储过程设置为SQL Server代理工作,但它给了我以下错误、
不能批量加载,因为文件"P:\file.csv"不能被打开。操作系统错误代码3(未能检索到此错误的文本。 原因:15105)。[SQLSTATE 42000] (错误4861)
有趣的是,当我手动执行这个存储过程时,它工作得很好。
驱动器P:是Windows SQL Server上通过Samba共享的共享驱动器,它是通过执行以下命令设置的、
EXEC xp_cmdshell 'net use P: "\lnxusanfsd01\Data" Password /user:username /Persistent:Yes';
如果有任何帮助,我们将非常感激
35
3
我不知道你是否解决了这个问题,但我有同样的问题,如果实例是本地的,你必须检查访问文件的权限,但如果你从你的电脑访问服务器(远程访问),你必须在服务器中指定路径,所以这意味着将文件包括在服务器目录中,这解决了我的问题。
例如:
为了简单起见,我只是把导入数据的目录改为服务器上的一个本地文件夹。
我的文件位于一个共享文件夹中,我只是把我的文件复制到服务器上的"c:\TEMP\Reports"(将查询更新为从新文件夹中的BULK INSERT)。代理任务成功完成 :)
经过长时间的努力,我终于能够通过代理任务自动进行BULK插入。
最好的问候。
这可能是一个权限问题,但你需要确保尝试这些步骤来排除故障:
sa
身份运行,并在前后添加net use
和net use /delete
命令记住撤销任何改变(特别是以
sa
身份运行)。如果其他方法都不奏效,你可以尝试将批量加载改为计划任务,在数据库服务器或其他安装了bcp的服务器上运行。