返回顶部
首页 > 资讯 > 数据库 >SQL解析XML
  • 440
分享到

SQL解析XML

2024-04-02 19:04:59 440人浏览 泡泡鱼
摘要

-------------------------------成功------------------------------------------------------------with pivot

-------------------------------成功------------------------------------------------------------

with pivot_info as(

  select * from (

      select t.workcode, to_char(count(1)) DPAPC,failmodeldic.dic_name failmodelname

          from tdm_testpart t,pub_dictionary failmodeldic

         where t.workcode is not null

           and t.isdpa = '1'

           and t.isreturn=1

           and t.failuremodel=failmodeldic.dic_code(+)

         group by t.workcode,failmodeldic.dic_name

         )  pivot xml(max(DPAPC) DPAPC,max(failmodelname) failmodelname for workcode in (select distinct tt.workcode

                                                                              from TDM_TESTPART tt 

                                                                             where tt.workcode is not null)))

select extractvalue (value (t), '/item/column[@name="WORKCODE"]') WORKCODE,

    extractvalue (value (t), '/item/column[@name="DPAPC"]') DPAPC,

        extractvalue (value (t), '/item/column[@name="FAILMODELNAME"]') FAILMODELNAME

from pivot_info,

        XMLTable ('/PivotSet/item' passing WORKCODE_XML) t

-----------------半成品----------------------

with pivot_info as(

  select * from (

      select t.workcode, to_char(count(1)) DPAPC,failmodeldic.dic_name failmodelname

          from tdm_testpart t,pub_dictionary failmodeldic

         where t.workcode is not null

           and t.isdpa = '1'

           and t.isreturn=1

           and t.failuremodel=failmodeldic.dic_code(+)

         group by t.workcode,failmodeldic.dic_name

         )  pivot xml(max(DPAPC) DPAPC,max(failmodelname) failmodelname for workcode in (select distinct tt.workcode

                                                                              from TDM_TESTPART tt 

                                                                             where tt.workcode is not null)))

select extractvalue (value (t), '/item/colunm[@name="WORKCODE"]') WORKCODE,

    extractvalue (value (t), '/item/colunm[@name="DPAPC"]') DPAPC,

     extractvalue (value (t), '/item/colunm[@name="FAILMODELNAME"]') FAILMODELNAME

from pivot_info,

     XMLTable ('/PivotSet/item' passing WORKCODE_XML) t



----------------半成品---------------

with a as(

  select * from (

      select t.workcode, to_char(count(1)) DPAPC,failmodeldic.dic_name failmodelname

          from tdm_testpart t,pub_dictionary failmodeldic

         where t.workcode is not null

           and t.isdpa = '1'

           and t.isreturn=1

           and t.failuremodel=failmodeldic.dic_code(+)

         group by t.workcode,failmodeldic.dic_name

         )  pivot xml(max(DPAPC) DPAPC,max(failmodelname) failmodelname for workcode in (select distinct tt.workcode

                                                                              from TDM_TESTPART tt 

                                                                             where tt.workcode is not null)))

select extractvalue (WORKCODE_XML, '/PivotSet//item/colunm[@name="WORKCODE"]/text()') WORKCODE,

    extractvalue (WORKCODE_XML, '/PivotSet/item/colunm[@name="DPAPC"]/text()') DPAPC,

     extractvalue (WORKCODE_XML, '/PivotSet/item/colunm[@name="FAILMODELNAME"]/text()') FAILMODELNAME

from a


------------半成品---------

select *

  from (

  select workcode ,DPAPC,failmodelname from(

 

      select t.workcode, to_char(count(1)) DPAPC,failmodeldic.dic_name failmodelname

          from tdm_testpart t,pub_dictionary failmodeldic

         where t.workcode is not null

           and t.isdpa = '1'

           and t.isreturn=1

           and t.failuremodel=failmodeldic.dic_code(+)

         group by t.workcode,failmodeldic.dic_name

         ) ) pivot xml(max(DPAPC) DPAPC,max(failmodelname) failmodelname for workcode in (select distinct tt.workcode

                                                                              from TDM_TESTPART tt 

                                                                             where tt.workcode is not null)) b,

xmltable('/PivotSet' passing b.workcode_xml columns


   WORKCODE VARCHAR2(50) PATH

    '/item/colunm[@name="WORKCODE"]',

    DPAPC VARCHAR2(50) PATH

    '/item/colunm[@name="DPAPC"]',

    FAILMODELNAME VARCHAR2(50) PATH

    '/item/colunm[@name="FAILMODELNAME"]')

--------------demo-------------



SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING  XMLTYPE('

              <DEAL_BASIC>

                 <USER_DEAL_INFO>

                     <USER_DEAL_ID name="AAA">A</USER_DEAL_ID>

                     <USER_DEAL_ID name="BBB">B</USER_DEAL_ID>

                     <DEAL_INURE_TIME>C</DEAL_INURE_TIME>

                     <DEAL_EXPIRE_TIME>D</DEAL_EXPIRE_TIME>

                     <DEAL_CREATE_TIME>E</DEAL_CREATE_TIME>

                 </USER_DEAL_INFO>

                 <USER_DEAL_INFO>

                     <USER_DEAL_ID name="AAA">1</USER_DEAL_ID>

                     <USER_DEAL_ID name="BBB">2</USER_DEAL_ID>

                     <DEAL_INURE_TIME>3</DEAL_INURE_TIME>

                     <DEAL_EXPIRE_TIME>4</DEAL_EXPIRE_TIME>

                     <DEAL_CREATE_TIME>5</DEAL_CREATE_TIME>

                 </USER_DEAL_INFO>

                 <USER_DEAL_INFO>

                     <USER_DEAL_ID name="AAA">6</USER_DEAL_ID>

                     <USER_DEAL_ID name="BBB">7</USER_DEAL_ID>

                     <DEAL_INURE_TIME>8</DEAL_INURE_TIME>

                     <DEAL_EXPIRE_TIME>9</DEAL_EXPIRE_TIME>

                     <DEAL_CREATE_TIME>10</DEAL_CREATE_TIME>

                 </USER_DEAL_INFO>

              </DEAL_BASIC>') AS B

    COLUMNS USER_DEAL_A  VARCHAR2(50) PATH  '/USER_DEAL_INFO/USER_DEAL_ID[@name="AAA"]',

    USER_DEAL_B VARCHAR2(50) PATH  '/USER_DEAL_INFO/USER_DEAL_ID[@name="BBB"]',

    DEAL_INURE_TIME VARCHAR2(50) PATH   '/USER_DEAL_INFO/DEAL_INURE_TIME',

    DEAL_EXPIRE_TIME VARCHAR2(50) PATH  '/USER_DEAL_INFO/DEAL_EXPIRE_TIME',

    DEAL_CREATE_TIME VARCHAR2(50) PATH  '/USER_DEAL_INFO/DEAL_CREATE_TIME')

这里之所以非得用sql来解析xml 也是不得已。行列转换生成的Clob字段得给页面上展示  又懒得用代码解析 只想套用自己写好的展示工具

后来折腾了一天之后 经过请教 ibatis 是个很好的工具。 

然后

1.将行专列 的包含 XML 的结果 xmltype 通过 to_clob(workcode_xml) 转换成clob 

2.用ibatis 配置文件 查出来转换成 XML 的 String 字符串

2.对字符串进行解析 封装grid

终于问题解决 释怀了!

写此博文 只为保留经验 以备用的时候方便查询。

您可能感兴趣的文档:

--结束END--

本文标题: SQL解析XML

本文链接: https://lsjlt.com/news/50431.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQL解析XML
    -------------------------------成功------------------------------------------------------------with pivot...
    99+
    2024-04-02
  • xml解析
    XML 指可扩展标记语言(eXtensible Markup Language)。XML 被设计用来传输和存储数据。而HTML被用来显示数据。 XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语...
    99+
    2023-01-30
    xml
  • Python 解析XML
    Python中对两种解析方式的解释: The Python standard library provides a minimal but useful set of interfaces to work with XML. The t...
    99+
    2023-01-31
    Python XML
  • Python XML解析
    Python XML解析----http://www.w3cschool.cn/python/python-xml.htmlPython中使用ElementTree对XML文件进行解析----http://www.jianshu.com/p...
    99+
    2023-01-31
    Python XML
  • java解析XML详解
    目录XML的主要用途对比HTML关于XML文件的解析?JDK自带的一套解析总结XML的主要用途 --数据存储和数据描述 --是一个优良的配置文件 --相当于...
    99+
    2024-04-02
  • 运用SQL SERVER 2005 CLR解决XML 的实例分析
    运用SQL SERVER 2005 CLR解决XML 的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。大家都知道SQL SERVER 2005 CLR(...
    99+
    2023-06-17
  • PL/SQL中的XML处理与解析方法是什么
    PL/SQL中可以使用XMLType数据类型来处理和解析XML数据。XMLType数据类型可以存储XML文档,并提供了一些内置的方法...
    99+
    2024-05-08
    PL/SQL
  • java怎么解析XML
    本篇内容主要讲解“java怎么解析XML”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么解析XML”吧!目录XML的主要用途对比HTML关于XML文件的解析?JDK自带的一套解析XML...
    99+
    2023-06-20
  • Python XML解析之DOM
    DOM说明: DOM:Document Object Model API DOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问。 https://docs.python.org/2/librar...
    99+
    2023-01-30
    Python XML DOM
  • Python XML解析之Element
    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.elementtree.html 菜鸟教程提供了...
    99+
    2023-01-30
    Python XML Element
  • Python xml解析记录
    Python的xml解析方式自带的有3种,xml.dom.*、xml.sax.*以及xml.etree.ElementTree,相对来说,xml.etree.ElementTree最快捷方便。 因为自己只使用了xml.etree.Elem...
    99+
    2023-01-31
    Python xml
  • SQL 中的For Xml Path详解
    目录FOR XML PATH是什么创建测试数据使用方法介绍具体实际应用代码优化STUFF()STUFF()函数的作用STUFF()函数的语法参数解释返回类型注意事项最近出的每日一题里...
    99+
    2022-11-13
    SQL For Xml Path
  • python xml解析实例详解
    python xml解析 first.xml <info> <person > <id>1</id> <name>fsy</...
    99+
    2022-06-04
    详解 实例 python
  • Python中如何解析XML
    Python中如何解析XML,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是XMLXML是可扩展标记语言(Extensible Markup Languag...
    99+
    2023-06-17
  • Python中怎么解析XML
    本篇文章给大家分享的是有关Python中怎么解析XML,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python解析XML代码示例:< text &g...
    99+
    2023-06-17
  • Java中解析XML文件
    1.初识XML 1.1 定义         XML(EXtensible Markup Language),可扩展标记语言,相比于HTML可以自定义标签,不遵循W3C标准         XML特点:跨平台、跨语言、跨系统。XML与操作系...
    99+
    2023-09-23
    xml
  • Python解析XML字符串
    # -*- coding: utf-8 -*-      import xml.sax   import xml.sax.handler      class XMLHandler(xml.sax.handler.ContentHan...
    99+
    2023-01-31
    字符串 Python XML
  • C++使用TinyXML解析XML
    目录1.介绍2.TinyXML配置3.TinyXML读取和保存文件3.1 读取xml文件3.2 读取xml参数3.3 保存xml参数到文本3.4 保存xml参数到临时变量4.Tiny...
    99+
    2024-04-02
  • Android之PULL、SAX、DOM解析XML
    背景:解析天气预报的xml文件,在模拟器显示 解析前准备 layout目录下weather.xml ...
    99+
    2022-06-06
    sax XML dom Android
  • android通用xml解析方法
    1、为什么需要写一个通用xml解析方法。 当需要解析不同的xml节点。你有可能是在xml解析的时候匹配不同节点并且节点名都是写死的,这样的话你解析不同的节点就需要不同的解析方...
    99+
    2022-06-06
    XML 方法 xml解析 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作