2017-10-17 61 views
1

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 

回答

0

我覺得你的問題是你的BULK INSERT命令的'~/test_data.txt'一部分。具體來說,那就是「在主目錄中找到名爲test_data.txt的文件」。但是,誰的主目錄?不是你的!它正在尋找運行SQL Server的帳戶的主目錄中的文件。嘗試將其更改爲完整路徑(即'/home/«username»/test_data.txt'並且應該這樣做)。