如何克服 OpenXML 的 8000 个字符限制?

Mur*_*dvi 2 sql sql-server sqlxml openxml

我正在使用 OpenXML 在 SQL 中加载 XML,同时声明变量我可以达到的最大值是 8000 个字符:

DECLARE @xml_text varchar(8000)
Run Code Online (Sandbox Code Playgroud)

由于文本,ntext 不允许与 openXML 一起使用,我还有什么其他替代方法可以在 SQL 中加载整个 XML(超过 20000 个字符)?

Cod*_*ker 5

您应该能够使用 varchar(max)(SQL 2005 及更高版本)

DECLARE @idoc int
DECLARE @doc varchar(max)
SET @doc = '
<myxml>
<node nodeid="1" nodevalue="value 1">

</node>

</myxml>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT
    *
FROM
    OPENXML (@idoc, '/myxml/node',1) WITH ( nodeid varchar(10), nodevalue varchar(20) )
Run Code Online (Sandbox Code Playgroud)