SQL - 将 XML 转换为 nvarchar(max)

dns_nx

我有一个SQL stored procedure. 我需要xml从数据库生成一个在我的存储过程中,我收集了所有信息,然后我的计划是根据需要生成 XML 文件(请参阅代码)。

我需要报告的所有交易都加载到变量中@transactionXml它是数据类型xml,可以变得非常大。

SET @xmlOut += '<export_datuma>' + cast(CAST(getdate() as date) as nvarchar(100)) + '</export_datuma>'
SET @xmlOut += '<export_szla_db>' + @noOfResults + '</export_szla_db>'
SET @xmlOut += '<kezdo_ido>' + cast(@fromDate as nvarchar(max)) + '</kezdo_ido>'
SET @xmlOut += '<zaro_ido>' + cast(@toDate as nvarchar(max)) + '</zaro_ido>'
SET @xmlOut += '<kezdo_szla_szam>' + @minInvoiceNo + '</kezdo_szla_szam>'
SET @xmlOut += '<zaro_szla_szam>' + @maxInvoiceNo + '</zaro_szla_szam>'
SET @xmlOut += cast(@transactionXml as nvarchar(max))
SET @xmlOut += '</szamlak>'

SELECT @xmlOut

当我尝试将数据类型转换为nvarchar(max)(如在代码部分中)时,字符串不完整并且缺少一些信息。似乎字符串在 x 符号后被切断。

有没有办法将@transactionXml变量完全转换为文本,以便我可以在我的@xmlOut语句中使用它

修吾

您不应该在字符串级别创建 XML!试试这个:

SELECT CAST(getdate() as date) AS export_datuma
      ,@noOfResults AS export_szla_db
      ,@fromDate AS kezdo_ido
      ,@toDate AS zaro_ido
      ,@minInvoiceNo AS kezdo_szla_szam
      ,@maxInvoiceNo AS zaro_szla_szam
      ,@transactionXml AS [*] --This is the pre-created XML which should be fine
FOR XML PATH('szamlak');

预先创建的 XML 必须没问题,否则您无法将其存储为 XML 本机类型。

在字符串级别创建 XML 会产生各种危险的副作用。想象一下你的一个变量中有一个被禁止的字符......

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将CSV转换为XML

来自分类Dev

将XML节点转换为SQL Server中的行

来自分类Dev

将通用SQL列值转换为xml节点

来自分类Dev

如何将XML数据转换为SQL Server表

来自分类Dev

将xml转换为键值对SQL Server

来自分类Dev

将SQL表转换为XML

来自分类Dev

将SQL NVARCHAR(MAX)转换为XML并从XML字符串获取值

来自分类Dev

将XML转换为SQL列和值

来自分类Dev

Python-使用pyodbc将XML字段从SQL SERVER转换为XML FILE

来自分类Dev

T-SQL将xml字段转换为多列表

来自分类Dev

将SQL查询结果转换为XML

来自分类Dev

将.xml转换为JSON

来自分类Dev

如何使用XSLT将xml转换为sql查询?

来自分类Dev

将单列单行XML数据转换为SQL表

来自分类Dev

XSL将XML转换为较小的XML

来自分类Dev

PostgreSQL将SQL XML编码转换为SQL JSON编码

来自分类Dev

将XML转换为字典

来自分类Dev

将XML节点转换为SQL Server中的行

来自分类Dev

使用T-SQL将表转换为XML

来自分类Dev

使用XSLT将XML转换为XML

来自分类Dev

将通用SQL列值转换为xml节点

来自分类Dev

将大型SQL Server表转换为XML

来自分类Dev

将SQL NVARCHAR(MAX)转换为XML并从XML字符串获取值

来自分类Dev

SQL Server:将多个XML转换为表

来自分类Dev

T-SQL将xml字段转换为多列表

来自分类Dev

将 XML 转换为 JSON

来自分类Dev

将 XML 转换为 SQL Server 数据库

来自分类Dev

将 Bean 转换为 XML

来自分类Dev

将 JSON 转换为 XML 的 T-SQL 函数