问题标签 [for-xml-explicit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7084 浏览

sql-server - 关于“FOR XML EXPLICIT”Msg 6833“需要先打开父标签”错误的建议

我继承了一个 1000 行的存储过程,它使用 FOR XML EXPLICIT 生成 XML。我的问题是它大部分时间都有效。在某些情况下,我收到错误:

父标签 ID 2 不在打开标签中。FOR XML EXPLICIT 要求先打开父标签。检查结果集的顺序。编号:6833 严重性:16 状态:1

我需要有关如何解决此问题的想法。我需要找出嵌套失败的地方。这可能是没有发出父行但有子行的情况。更糟糕的是,这个问题只发生在我们的测试系统上,它可能缺少一些生产数据。问题是如何从数千行中找到它?

我确信不存在一个疯狂的想法:SQL Server 有一种算法用于确定行的顺序是否正确。如果有一个工具可以查看我的结果集(没有 FOR XML EXPLICIT)并找出问题所在,那就太好了(如果不太可能),然后告诉我。

在没有这样的工具的情况下,我欢迎任何关于如何调试它的建议。XML(当它工作时)有四个层次!


更新:感谢到目前为止的所有答案。看起来这是一个错误编辑的存储过程的问题。大的部分用“/* /”注释注释掉了——当代码中已经有“/*/”注释时,这不能很好地工作……当我确定答案时,我会再次更新。

0 投票
1 回答
113 浏览

sql-server - XML 查询标签是堆叠的而不是嵌套的

我有这些表:

知识产权局

集团

产品

使用此查询:

这给了我这个:

或者,如果没有 FOR XML,则:

随着“tipo”和“grupo”的堆叠和空置。事实上,我想要这个结果:

也就是说,“Tipo”、“Grupo”和“produto”根据 嵌套。

我究竟做错了什么?

0 投票
1 回答
1950 浏览

sql-server - 在 SQL Server 查询中使用 For Xml 子句、显式模式指定 XMLNAMESPACE

我正在尝试使用FOR XML子句EXPLICIT模式查询某些数据库,但我不知道如何在使用此模式时指定 XMLNAMESPACE 和模式,就像使用AUTO模式时的 WITH XMLNAMESPACE 或RAW

MSDN示例查询在其结果中将 指定Schema1为结果的架构XML

这是示例结果:

0 投票
2 回答
4339 浏览

sql - 如何使用 xml 显式生成带有元素和属性的 xml

我试图以以下格式生成 xml:

我的查询如下:

我的查询没有完全产生记录标签,目前是

这应该是

我尝试了所有的可能性,但没有得到标签。谁能帮我解决这个问题。

0 投票
2 回答
16003 浏览

sql-server-2008 - 带有 FOR XML 的 SQL Server EXPLICIT 模式

我正在使用 SQL Server 2008,并且正在尝试使用EXPLICIT带有FOR XML.

我有以下查询的一对多关系

在此处输入图像描述

我希望作为父母的人和作为孩子的地址可能是多重的,因为人们要解决的问题是一对多的关系。

我写了以下查询

输出如下,这是嵌套的人破坏的xml,我的代码肯定有问题。

有没有人可以帮帮我!!!

0 投票
1 回答
1946 浏览

sql-server-2008 - 将 FOR XML EXPLICIT UNION 的结果分配给变量

此查询工作正常

我想将它分配给一个变量。没有工会,这可以正常工作:

一旦我介绍了工会,它就不起作用了:

尝试了各种各样的事情。我错过了什么

0 投票
1 回答
430 浏览

sql-server - “for XML Explicit”查询的输出根据连接更改货币列的尾随零

我有一个 Microsoft SQL Server 查询,它建立一个临时表,然后使用“for XML Explicit”语法输出 XML,如下所示:

这都包含在存储过程中。我们只需运行传入我们的 Id 的存储过程来获取 XML 文档。

查询本身运行良好,并且已经运行了好几年。但是,我们现在发现 XML 输出根据谁调用存储过程而发生变化的情况。我们的输出包含大量的货币数据类型。在某些情况下,货币类型中不包含尾随零。在其他情况下,类型始终显示 4 个有效数字。

在我的测试环境中,我在 SQL Server 2008 R2 数据库上复制了它。

例如,我的主程序(与旧的 SQLOLEDB 提供程序连接)获取不包含尾随零的 XML。

但是,当我从 SQL Server Management Studio 运行相同的存储过程时,我总是得到 4 个位置。

我还有一个客户端使用相同的 SQLOLEDB 提供程序与我的应用程序连接,该提供程序正在获得额外的零。

我处理 XML 文件以生成报告。那些并不期待额外的零。由于我在两个不同的程序之间看到不同的输出,我猜测(希望)有一个数据库选项、连接字符串选项或额外的命令参数来控制货币类型如何转换为 XML 输出的字符串。

这样的事情是否存在,如果存在,我该如何设置该值以保持输出一致?最好没有额外的零。

0 投票
1 回答
1286 浏览

sql - 对于 XML 显式嵌套数据不正确

终于回答了这个问题 - 下面概述了它会帮助一些必须使用 XML 显式的其他不幸的灵魂:)

我有以下代码输出下面包含的 XML。我遇到的问题是,每个request_status_update部分中应该有一个shipping_infoassociated_pin_pad部分,但它们都只出现在最后一个request_status_update中。

或者,如果有人能指出我用 XML PATH 进行这种嵌套的方法,那可能会更简单,我也完全赞成。我只是不知道如何获得一个标题部分,但仍然是多个 request_status_update 部分。XML PATH 似乎希望您总是在逐行的基础上做某事,而不仅仅是一个标题部分。

提前感谢您对此的任何帮助。我知道这是一个很长的代码(对此感到抱歉)

SQL 代码:

XML 输出:(仅包括 request_status_updates 部分,因为这是问题区域

预期输出:

使固定:

我需要添加这个 order by 子句,

此外,从对标签 4 的查询开始,我需要确保 RequestID 实际上包含在结果中,而不是 NULL,以便排序能够正常工作。

我还将研究使用应该比 XML EXPLICIT 更简单的 XML PATH,但到目前为止,这目前还有效。

0 投票
2 回答
2052 浏览

sql-server - 用于 XML 显式的 SQL 服务器

我想将 SELECT FOR XML EXPLICIT 语句的结果分配给 XML 变量,例如

当我执行此查询时,我收到以下错误消息 1086,级别 15,状态 1,过程 BILLING_RESPONSE,第 22 行当视图、内联函数、派生表和子查询包含集合运算符时,FOR XML 子句在它们中无效。要解决此问题,请使用派生表语法包装包含集合运算符的 SELECT,并在其上应用 FOR XML。

0 投票
2 回答
1249 浏览

sql - 创建 xml 树(父子)的 SQL XML 显式问题

我在 sql server 中遇到了一些 xml 显式问题,它不会根据我在 sql 查询中指定的关系输出 xml。查询是在 pubs 数据库上完成的,虽然 xml 路径更易于使用,但我的培训师需要它在 xml 显式上完成。

它产生的输出:

我想要的输出: