我需要在SQL Server 2005中读取文本文件的第二行和最后一行。该行的内容将以制表符分隔。有人能告诉我用于实现这一目标的一般方法是什么?请注意,我无法在数据库中创建临时表,因为我只能读取它的访问权限。
答案 0 :(得分:1)
你可以使用OPENROWSET,如果是这种情况,请参考
SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt',
FORMATFILE = 'c:\test\values.fmt') AS a;
答案 1 :(得分: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