如何使sqlcmd在Linux上拥有文件访问权限



2天前刚刚在Ubuntu 16.04上安装了sql-server。使用sqlcmd进行批量插入,我得到了:

Msg 4860,级别 16,状态 1,第 6 行 无法批量加载。该文件 "~/test_data.txt"不存在,或者您没有文件访问权限。

是的,该文件确实存在,我使用命令cat确保它。

然后我尝试了bcp工具,但我得到了:

SQLState = S1000,本机错误 = 0 错误 = [Microsoft][ODBC 驱动程序 13 对于 SQL Server]无法打开 BCP 主机数据文件

还尝试安装Visual Studio代码并添加mssql扩展,但我收到了相同的"文件访问权限"警告。并且已经使用了试图修复它的chmod 777。没用。

命令批量插入sqlcmd

    BULK INSERT TestEmployees FROM '~/test_data.txt'
WITH(
    rowterminator = ','
);

bcp工具上的命令

bcp auth in path/auth2.tsv -S localhost -U sa -P <my password> -d Trabalho1BD -c

我认为您的问题是批量插入命令的'~/test_data.txt'部分。具体来说,它说"在主目录中找到一个名为test_data.txt的文件"。但是谁的主目录?不是你的!它正在运行 SQL Server 的帐户的主目录中查找文件。尝试将其更改为完整路径(即 '/home/«username»/test_data.txt',这应该可以做到。

最新更新