2010-09-07 72 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过程的文件

相关问题