記一次使用openrowset 的坑
阿新 • • 發佈:2019-01-10
前幾天被老大訓斥連openrowset 都不會用,然後我就去看了文件,想測試一下栗子~
openrowset 的具體語法我就不貼了,戳這裡:https://msdn.microsoft.com/zh-cn/library/ms190312(v=sql.120).aspx
按照文件裡面的樣例來測試,首先建立一個文件 values.txt
1 Data 1 For 2 Data 2 For 3 Data 3 Fro
然後建立一個格式化檔案 v.fmt ,具體非xml格式化檔案的寫法戳這裡 :https://msdn.microsoft.com/zh-cn/library/ms191479(v=sql.120).aspx
9.0 2 1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_CP1_CI_AS2 SQLCHAR 0 10 "\r\n" 2 Desc SQL_Latin1_General_CP1_CI_AS
然後把這2文件都放在D盤的根目錄下,然後執行
SELECT * FROM OPENROWSET( BULK 'D:\values.txt',FORMATFILE = 'D:\v.fmt') AS a;
然後挺萌的出現了 由於檔案“D:\v.fmt”不完整或無法讀取,無法進行大容量載入。作業系統錯誤程式碼為 (null)。
然後我找啊找 ……關鍵是錯誤程式碼是 Null 無法找啊!!!
最後……看到是因為不完整或無法讀取,我確定原因應該是檔案許可權或者檔案本身問題。然後我先將2個檔案按照單行輸出,都正常,確認不是檔案許可權的問題。
然後另外一個不完整。不完整這個,我唯一想到一次因為少了個換行導致不成功,然後我鬼使神差的在fmt檔案最後加了一個換行……然後~重新執行!!成功啦!!!!!!
PS:別看說得輕鬆,實際除錯了2個多小時/(ㄒoㄒ)/~~