如何让sqlcmd在linux上保存文件访问权限?

时间:2017-10-17 22:57:30

标签: sql-server linux ubuntu-16.04

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

  

Msg 4860,Level 16,State 1,Line 6无法批量加载。文件   “〜/ test_data.txt”不存在,或者您没有文件访问权限。

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

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

  

SQLState = S1000,NativeError = 0错误= [Microsoft] [ODBC驱动程序13   for 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

1 个答案:

答案 0 :(得分:0)

我认为您的问题是批量插入命令的>>> class foo(object): ... __slots__ = () ... def __init__(self): ... self.x = 1 ... >>> vars(foo()) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in __init__ AttributeError: 'foo' object has no attribute 'x' 部分。具体来说,就是说“在主目录中找到一个名为test_data.txt的文件”。但是谁的主目录?不是你的!它正在查找运行SQL Server的帐户的主目录中的文件。尝试将其更改为完整路径(即'~/test_data.txt',并且应该这样做。