如何使用 ORACLE SQL 从 XML 中单独提取可重复的 json 节点值?

2024-04-28

我有以下 XML,我想提取 json 参数“serviceNumber”的值分别地我尝试使用 EXTRACT 函数,但我得到了连接的结果,但我希望将它们分开。

<Input>
   <Header>
      <User-Agent></User-Agent>
      <Accepted-Language></Accepted-Language>
      <Authorization></Authorization>
      <Date>Mon, 27 Feb 2017 21:39:55 GMT</Date>
      <Username></Username>
      <Test />
      <UserInfo />
      <msisdn />
      <imsi />
      <X-Forwarded-For></X-Forwarded-For>
      <x-Client-IP></x-Client-IP>
      <Location />
   </Header>
   <URI></URI>
   <ServiceName></ServiceName>
   <PrimaryKey></PrimaryKey>
   <Parameters>
      <Parameter1></Parameter1>
      <Parameter2 />
      <Parameter3 />
   </Parameters>
   <Body>
      <json:object xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd">
         <json:string name="transactionType"></json:string>
         <json:array name="payments">
            <json:object>
               <json:string name="amount"></json:string>
               <json:string name="serviceNumber">536888669</json:string>
               <json:string name="serviceType"></json:string>
               <json:string name="accountNumber"></json:string>
            </json:object>
            <json:object>
               <json:string name="amount"></json:string>
               <json:string name="serviceNumber">535394441</json:string>
               <json:string name="serviceType"></json:string>
               <json:string name="accountNumber"></json:string>
            </json:object>
            <json:object>
               <json:string name="amount"></json:string>
               <json:string name="serviceNumber">138422262</json:string>
               <json:string name="serviceType"></json:string>
               <json:string name="accountNumber"></json:string>
            </json:object>
            <json:object>
               <json:string name="amount"></json:string>
               <json:string name="serviceNumber">505809543</json:string>
               <json:string name="serviceType"></json:string>
               <json:string name="accountNumber"></json:string>
            </json:object>
            <json:object>
               <json:string name="amount"></json:string>
               <json:string name="serviceNumber">138422338</json:string>
               <json:string name="serviceType"></json:string>
               <json:string name="accountNumber"></json:string>
            </json:object>
         </json:array>
      </json:object>
   </Body>
</Input>

我想要的输出像

serviceNumber
-------------
536888669
535394441
138422262
505809543
138422338

Use XMLTABLE:

SELECT x.serviceNumber
FROM   your_table t
       CROSS JOIN
       XMLTABLE(
         XMLNAMESPACE( 'http://www.yourserver.url/json/' AS "json" ),
         '//root/Input/Body/json:object/json:array/json:object/'
         PASSING XMLTYPE(
           '<?xml version="1.0" encoding="utf-8"?>' ||
           '<root xmlns:json="http://www.yourserver.url/json/">' ||
           t.your_xml_column ||
           '</root>'
         )
         COLUMNS serviceNumber NUMBER PATH './json:string[@name="serviceNumber"]'
       ) x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ORACLE SQL 从 XML 中单独提取可重复的 json 节点值? 的相关文章

随机推荐

  • 如何在 Postgres 中的 JSON 字段上创建索引?

    在 PostgreSQL 9 3 Beta 2 中 如何在 JSON 字段上创建索引 我尝试使用 gt 运算符用于hstore但出现以下错误 CREATE TABLE publishers id INT info JSON CREATE I
  • 如何在 Javafx 中对齐对话框窗格的“确定”按钮?

    我想对齐 即位置中心 对话框窗格的 确定 按钮 我已经尝试过下面的代码 但它不起作用 Dialog dialog new Dialog DialogPane dialogPane dialog getDialogPane dialogPan
  • 在 REST WCF 中读取 HttpRequest 正文

    我在 net 4 中运行了一个 REST WCF 服务 并且我已经测试了它正在工作并接受我对其发出的 HttpRequest 的 Web 服务 但我在尝试访问 Web 服务中的 HttpRequest 主体时遇到了问题 我尝试使用 Fidd
  • UICollectionView - 水平滚动,水平布局?

    我有一个UIScrollView布置了一个图标网格 如果您能够想象 iOS Springboard 的布局 那么您的想法就非常接近正确了 它有一个水平的分页滚动条 就像 Springboard 一样 不过 布局似乎不太对劲 看起来好像是从上
  • 抑制 R 中的安装输出

    这真的开始让我烦恼 我尝试了几种方法 但似乎都不起作用 我正在从一个函数运行安装 该函数会生成许多我想抑制的不必要的消息 但我尝试执行此操作的所有方法都不起作用 我试图抑制的代码是 install github ROAUth duncant
  • 如何通过按 ESC 键关闭窗口(NSWindowController)?

    Issue 我希望用户能够通过按 ESC 键来关闭窗口 但在这种特定情况下我无法让它工作 按 ESC 会触发错误声音 不 你不能这样做 macOS bloop 但什么也没发生 Context 我正在创建 NSWindowController
  • MVC 的设计是 RESTful 的吗

    MVC 必须是 RESTful 的吗 有没有办法制作一个SOAP服务使用MVC图案 输入请求实际上会进入View首先然后进入Controller那么Model eg Request gt View gt Controller gt Mode
  • 当我调用 CMake 时如何定义变量,以便 qtcreator 知道它已定义?

    我有一段根据 define 有条件激活的代码 如下所示 ifdef VARIABLE code function endif cmake 脚本有一个 选项 命令 可以像这样设置变量 option VARIABLE Want to use V
  • 使用 java.nio.Files 更改 Linux 下的文件所有者组

    我有一台 Linux 服务器 并且正在 Java 中为服务器上的多个网站运行图像调整大小作业 网站文件由不同的操作系统用户 组拥有 新创建的缩略图 预览由运行调整大小作业的用户拥有 现在我正在谷歌搜索如何在调整大小程序中更改新创建的预览 缩
  • 使用安全字符串并保持其安全[重复]

    这个问题在这里已经有答案了 所以 NET框架提供了安全字符串 http msdn microsoft com en us library system security securestring aspx用于以安全方式存储字符串的类 但要读
  • 如何提高非持久 CGI 进程中的 Moose 性能?

    Moose http search cpan org dist Moose 是一个很棒的对象框架 问题在于 连同它的依赖项一起 它是very大的 我们的分析表明 在我们的平台上 仅加载 Moose 就会在非持久性 CGI 应用程序脚本上产生
  • 如何从位图中删除白色背景色

    我想删除位图中的白色背景颜色 Bitmap capcha new Bitmap C image jpg pictureBox1 Image capcha 但我想在我的 pictureBox1 中仅显示背景中存在的没有白色的图像 尝试在验证码
  • UITableViewDiffableDataSource 可以检测到项目已更改吗?

    在下面与 AndreasOetjen讨论后重写了这个问题 感谢他的评论 我在使用时遇到了问题UITableView具有不同的数据源 在我的应用程序中 当用户修改某个项目时 它可能会更改同一表视图中显示的另一个项目 问题是 在我创建并应用包含
  • 复选框和标签之间的填充

    对于 CSS 专家来说 此标记输出一个带有标签的复选框Value1在它的右边 但是Value1距离复选框太近 dd dd
  • 如何广播对 Android 应用程序安装的推荐

    没有回答 几乎同样的问题 https stackoverflow com questions 18571920 how to get referrer url for apps downloaded from outside the mar
  • 使用 php 执行 *.sql 文件

    我需要执行一个 sql 文件 其中大约有 48 个要创建的表 它由注释和以 结尾的sql命令组成 有没有办法运行这些 sql 命令 将它们立即转换为单个字符串 我的意思是我需要使用 php 立即运行整个文件 我可以使用 mysql quer
  • 为什么 C# 静态构造函数需要括号?

    考虑 class Foo static Foo Static initialisation 为什么是 需要在static Foo 静态构造函数必须始终是无参数的 那为什么还要麻烦呢 它们是否有必要避免一些解析器的歧义 或者只是为了保持与常规
  • 文件下载时文件名损坏 (IE)

    我实现了一个简单的文件上传下载机制 当用户单击文件名时 将下载带有以下 HTTP 标头的文件 HTTP 1 1 200 OK Date Tue 30 Sep 2008 14 00 39 GMT Server Microsoft IIS 6
  • 使用 jQuery 在图像上“绘制”简单线条并保存到 Rails DB 的最简单方法是什么?

    我想在图像上画线 基本上允许用户为他们喜欢的山路绘制一条路径 1 有谁知道一个好的简单的绘制基本线条的库吗 2 用户在图像上绘制一堆线条后 将数据保存到数据库的最佳方式是什么 画线 Paper js http paperjs org 看着那
  • 如何使用 ORACLE SQL 从 XML 中单独提取可重复的 json 节点值?

    我有以下 XML 我想提取 json 参数 serviceNumber 的值分别地我尝试使用 EXTRACT 函数 但我得到了连接的结果 但我希望将它们分开