1. 程式人生 > >記一次使用openrowset 的坑

記一次使用openrowset 的坑

前幾天被老大訓斥連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_AS
2 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ㄒ)/~~