我在存储过程中使用了BULK INSERT,我收到了这个错误:
Cannot bulk load because the file "D:vanAS_TEST_vanRunGroupervan_DB.csv" could not be opened. Operating system error code 32(error not found).
请注意,虽然在使用BULK INSERT时路径没有斜杠。另外,我得到一个代码32,虽然没有找到错误描述。当我在几个论坛中查找它(没有任何确定性)时,似乎错误代码与:
有关The process cannot access the file because it is being used by another process.
有人可以证实吗?
另外,为什么在使用斜杠传递批量插入命令的文件路径时,文件路径是否缺少斜杠?
感谢大家的帮助
这就是我调用存储过程的方式:
exec data_Import ''D:\van\AS_TEST_van\Run\Grouper\van_DB.csv'', APCE_1011_Grouper_Out_FCE
这是我在存储过程中运行批量插入的方法:
exec('BULK INSERT dbo.' + @Table + ' FROM ''' + @PathFileName + ''' WITH (FIELDTERMINATOR ='','', FIRSTROW = 2, ROWTERMINATOR =''\n'')')
请注意,我已编辑了文件路径。
答案 0 :(得分:5)
我收到此错误代码的原因是,在一个不幸的分裂时间,另一个程序访问此文件并锁定它!
我希望将来可以帮助别人。
答案 1 :(得分:0)
尝试使用双后退“\”转义“\”。通过iread it它被忽略,因为它不会产生具有以下字符的控制字符。反斜杠是SQL中的一个特殊字符。
答案 2 :(得分:0)
请确保您尝试导入的文件位于服务器上。或者修改路径以从网络共享中读取它们,即。 \\PC1\\imports\....
答案 3 :(得分:0)
请确保未在属性中选中目标文件夹。