【发布时间】:2018-01-11 15:41:50
【问题描述】:
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 语句中使用它?
【问题讨论】:
-
您如何验证字符串“不完整”?如果您要输出到 Management Studio,它只是截断字符串以进行演示。
-
真的吗?这是我的提示,字符串(xml)不完整。
-
“如何”是指在哪里。如果在 Management Studio 中,这不是字符串的错,而是工具的错。我写过这个here。
-
有一个没有开始标签的结束
</szamlak>?您是错过了复制第一行还是真的错过了? -
您应该不要在字符串级别创建 XML!
标签: sql sql-server xml tsql stored-procedures