1

我需要读取 SQL Server 2005 中文本文件的第二行和最后一行。该行的内容将用制表符分隔。有人能告诉我实现这一目标的一般方法是什么吗?请注意,我无法在数据库中创建临时表,因为我只有只读访问权限。

4

2 回答 2

1

您可以使用 OPENROWSET 和 where case ,请参考

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

SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt', 
   FORMATFILE = 'c:\test\values.fmt') AS a;
于 2012-11-10T00:20:55.517 回答
0

如果您知道行号(在我的测试 txt 文件中 5 行)

DECLARE @str nvarchar(max) = (SELECT line FROM OPENROWSET (BULK 'c:\your_file.txt' , SINGLE_CLOB ) AS xmlData(line))
;WITH cte AS (
         CAST('<r>'+REPLACE(@str, CHAR(13),'</r><r>')+'</r>' AS XML).query('/r[2]').value('.','varchar(max)') col2,
         CAST('<r>'+REPLACE(@str, CHAR(13),'</r><r>')+'</r>' AS XML).query('/r[5]').value('.','varchar(max)') col5                
 )
 SELECT CASE WHEN col2 = '' THEN NULL ELSE col2 END col2,  
        CASE WHEN col5 = '' THEN NULL ELSE col5 END col5
 FROM cte
于 2012-11-10T00:47:03.927 回答