2011-10-15 194 views
2

我想批量插入位於遠程Web服務器上的csv文件,但出現以下錯誤。SQL Server批量插入Http文件

無法批量加載,因爲文件「http://34.34.32.34/test.csv」可能不會打開 。操作系統錯誤代碼123(文件名,目錄 名稱或卷標語法不正確。)。

有沒有辦法做到這一點?

+0

如果你在瀏覽器中瀏覽http:// 34.34.32.34/test.csv會怎麼樣? –

回答

3

BULK INSERT的文檔沒有提及SQL Server能夠連接到Web服務器。

http://msdn.microsoft.com/en-us/library/ms188365.aspx

「DATA_FILE」包含數據 導入到指定表或視圖中的數據文件的完整路徑。 BULK INSERT可以從磁盤(包括網絡,軟盤,硬盤等)導入數據 。

data_file必須指定運行SQL 服務器的服務器的有效路徑。如果data_file是遠程文件,則指定 通用命名約定(UNC)名稱。 UNC名稱的格式爲 \ Systemname \ ShareName \ Path \ FileName。例如, \ SystemX \ DiskZ \ Sales \ update.txt。

如果必須進口從HTTP文件,考慮編寫一個CLR存儲過程或使用SSIS」外部連接能力。

2

http://34.34.32.34/test.csv正如錯誤消息所示,錯誤的文件名稱。正確的文件名看起來像c:\somefolder\test.csv。以http:開頭的內容是URL,而不是文件。

BULK INSERT不支持URL作爲源。您應該首先在本地下載文件(使用wget,curl或任何其他可以下載HTTP內容的程序),然後批量插入下載的文件。