如何让sqlcmd在linux上拥有文件访问权限?
问题描述:
2天前在Ubuntu 16.04上安装了sql-server。使用sqlcmd
批量插入我得到:如何让sqlcmd在linux上拥有文件访问权限?
消息4860,级别16,状态1,6行不能批量加载。文件 “〜/ test_data.txt”不存在,或者您没有文件访问权限。
是的文件确实存在,我使用命令cat
确保它。
然后我试图bcp
工具,但我得到:
SQLSTATE = S1000,NativeError = 0错误= [微软] [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
答
我觉得你的问题是你的BULK INSERT命令的'~/test_data.txt'
一部分。具体来说,那就是“在主目录中找到名为test_data.txt的文件”。但是,谁的主目录?不是你的!它正在寻找运行SQL Server的帐户的主目录中的文件。尝试将其更改为完整路径(即'/home/«username»/test_data.txt'
并且应该这样做)。