1
我需要讀取SQL Server 2005中文本文件的第二行和最後一行。行的內容將以製表符分隔。有人能告訴我什麼是實現這一目標的一般方法嗎?請注意,我不能在數據庫中創建臨時表,因爲我只能讀取它的訪問權限。在SQL Server 2005中使用SQL讀取文本文件
我需要讀取SQL Server 2005中文本文件的第二行和最後一行。行的內容將以製表符分隔。有人能告訴我什麼是實現這一目標的一般方法嗎?請注意,我不能在數據庫中創建臨時表,因爲我只能讀取它的訪問權限。在SQL Server 2005中使用SQL讀取文本文件
您可以使用OPENROWSET和地方情況,請參閱
SELECT a.* FROM OPENROWSET(BULK 'c:\test\values.txt',
FORMATFILE = 'c:\test\values.fmt') AS a;
如果你知道行號(在我的測試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