2010-09-07 41 views
3

我需要讀取存儲過程中由SSIS包創建的日誌文件。如何讀取存儲過程中的文本文件

有沒有很好的方法來做到這一點?

我試過使用this code,但它顯示我的文件內容爲亂碼。有沒有處理某種編碼問題?有更容易的方法嗎?

+0

當你說文本文件時,你的意思是一個.txt文件嗎? – 2010-09-07 14:16:52

+0

是的,一個.txt文件 – Greg 2010-09-07 14:26:34

回答

5

您是否嘗試過直接批量插入?例如:

create table #TempTable (line varchar(256)) 
bulk insert #TempTable from 'c:\logfile.txt' 
+0

這很有用,謝謝! – Greg 2010-09-07 14:32:55

1

您可以嘗試

select * from OPENROWSET(BULK N'C:\logfile.txt', SINGLE_BLOB) 
+0

這給了我一個很長的一串數字(十六進制無空格可能?) – Greg 2010-09-07 14:31:16

+0

它將整個文件讀取爲一個單一的blob。 Whaddya預計? :)如果你喜歡,你可以拼接它並使用各種字符串操作函數進行切分。 – 2010-09-07 14:45:18

0

存儲過程執行文件操作犯規聽起來像是個好主意!

也許你可以更詳細地解釋場景,這可能有助於人們提出一個更好的出路。但是,如果你需要,我想你應該看看SQL Server中的CLR存儲過程。 這樣,你可以使用普通的.NET類

參考這些MSDN Link 1MSDN Link 2鏈接,瞭解更多詳細信息,

這種特殊link涉及到需要給予大會爲它做權限的文件操作能夠訪問外部資源,如SQL Server中的CLR過程的文件

相關問題