sql-server - 无法批量加载,因为无法打开文件。操作系统错误代码 3

标签 sql-server stored-procedures samba sql-server-agent bulk-load

我正在尝试将存储过程设置为 SQL Server 代理作业,但出现以下错误,

无法批量加载,因为无法打开文件“P:\file.csv”。操作系统错误代码 3(无法检索此错误的文本。原因:15105)。 [SQLSTATE 42000](错误4861)

有趣的是,当我手动执行存储过程时,它工作得很好。

驱动器 P: 是通过 Samba Share 从 LINUX 在 Windows SQL Server 上的共享驱动器,它是通过执行以下命令来设置的,

EXEC xp_cmdshell 'net use P: "\lnxusanfsd01\Data"密码/user:用户名/Persistent:Yes'

对此的任何帮助将不胜感激

最佳答案

不知道你是否解决了这个问题,但我也遇到了同样的问题。如果实例是本地实例,则必须检查访问该文件的权限,但如果从计算机访问服务器(远程访问),则必须指定服务器中的路径,这意味着将该文件包含在服务器中目录,解决了我的问题。

示例:

BULK INSERT Table
FROM 'C:\bulk\usuarios_prueba.csv' -- This is server path not local
WITH 
  (
     FIELDTERMINATOR =',',
     ROWTERMINATOR ='\n'
  );

关于sql-server - 无法批量加载,因为无法打开文件。操作系统错误代码 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19491812/

相关文章:

sql-server - 模糊字符串匹配 SQL - 不同顺序的单词

linux - 查看Linux下存储的windows文件名

sql-server - 在 VBScript 中将字符串转换为唯一标识符

sql-server - Lync 数据库 - 移动用户与 PC 用户

SQL 存储过程问题 - 十进制值转换问题

java - 在java和sql server中的存储过程中传递列名?

mysql - 存储过程中的嵌套游标

java - Hibernate 命名查询或 SQL Server 存储过程

linux - samb.conf : Where is the "security" parameter?

kerberos - 使用 kerberos 安装 cifs-share 失败 : mount error(126): Required key not available