Sql server 读取SQL Server 2000文本列中的XML节点
我的任务是从一个封存了一段时间的遗留系统中提取一些数据——我们需要的所有数据都存储在一个表中的文本类型列中,平均字符串长度约为7000个字符。XML是用UTF-16编码的 这是我第一次在SQLServer中使用XML,在使用SQLServer2000的过程中,我一直在使用SQLServer2000,这似乎并没有让生活变得更轻松 就这个例子而言,我有一些明显的固有缺陷:Sql server 读取SQL Server 2000文本列中的XML节点,sql-server,xml,sql-server-2000,Sql Server,Xml,Sql Server 2000,我的任务是从一个封存了一段时间的遗留系统中提取一些数据——我们需要的所有数据都存储在一个表中的文本类型列中,平均字符串长度约为7000个字符。XML是用UTF-16编码的 这是我第一次在SQLServer中使用XML,在使用SQLServer2000的过程中,我一直在使用SQLServer2000,这似乎并没有让生活变得更轻松 就这个例子而言,我有一些明显的固有缺陷: DECLARE @xml NVARCHAR(4000), @i INT SELECT TOP 1 @xml = CONVERT(
DECLARE @xml NVARCHAR(4000), @i INT
SELECT TOP 1 @xml = CONVERT(NTEXT,[Content]) FROM UPLSalesP.dbo.RSSDocument
EXEC sp_xml_preparedocument @i OUTPUT, @xml
SELECT * FROM OPENXML(@i, '/UPLFolder/UPL/ApplicationData', 1)
NVARCHAR限制太小,无法实现我的目标。第二,当我运行我所拥有的时,我得到以下错误:
Msg 6603, Level 16, State 1, Procedure sp_xml_preparedocument, Line 4
XML parsing error: A name contained an invalid character.
我不知道这是编码问题还是XML被明显截断的结果。有人能帮我吗?一些例子将非常有用 编写一些代码可能更有意义,因为SQLServer的xml支持不如实际的编程语言强大;您是否有可以从SQL 2000实例读取数据的SQL 2005+实例?XML处理在2005年变得更加健壮。我可以将它链接到SQLServer2008R2 Express中-什么方法最适合这样解释它?我在2008年尝试进入XML,如下所示
选择TOP 1 Id,从[UPLSalesP].[dbo].[RSSDocument]
转换(XML,内容)并在响应XML解析时得到了这个结果:第1行,39个字符,无法切换编码
有任何示例可以查看,因为我在这一行迷路了!如果先转换到nvarchar,然后转换到XML,会发生什么?本文作者给出了答案: