我试图通过类似这样的存储过程读取XML文件:
CREATE table #temp
(
temp TEXT
)
DECLARE @sql_bulk NVARCHAR(500), @path NVARCHAR(500)
SET @sql_bulk = 'BULK INSERT #temp FROM '''+ @path+''' WITH (FIELDTERMINATOR = ''|'',ROWTERMINATOR = ''|\n'' )'
EXEC (@sql_bulk)
DECLARE @hDoc AS INT,@xml_text AS VARCHAR(8000)
select @xml_text = temp FROM #temp
EXEC sp_xml_preparedocument @hDoc OUTPUT, @xml_text
只要我的XML很小,这种方法就可以正常工作。为了处理大型XML,我打算将变量@xml_text
定义为TEXT
(作为存储过程的参数)。
但我现在面临的挑战是如何将列值分配给TEXT
变量?显然,我无法使用SET
或SELECT
为TEXT
变量赋值。我也试过READTEXT
无济于事。