我的本地 PC 上有一个 txt 文件。我运行连接到远程 MSSQL 的本地 Java 应用程序。现在我需要将该文本文件中的批量插入到我的数据库表中。
但是,SQL 登录无法读取我的文件。我得到:
原因:com.microsoft.sqlserver.jdbc.SQLServerException:无法批量加载,因为无法打开文件“D:/My_Files/my_file.txt”。操作系统错误代码 21(设备未准备好。)
我为“所有人”设置了 My_Files 文件夹的权限。我无法创建与 SQL 登录名相同的 Windows 用户,因为它对于 Windows 用户来说太长了。有解决办法吗?
正如 mustaccio 指出的那样,本地路径将无法从 SQL Server 访问,这是您收到的关于“ D:/My_Files/my_file.txt的错误。它正在 D: 驱动器上查找文件安装 SQL 实例的服务器(不是本地计算机的 D: 驱动器)。
不过,您也许可以为该文件夹创建一个网络共享,并通过 SQL Server 实例中的 UNC 路径引用它。在ServerFault问题的范围内,如何做到这一点更是如此。
或者,您可以在 Java 程序中添加代码以读取本地文件,然后
BULK INSERT
从应用程序向数据库执行命令。