我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL解析XML

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL解析XML

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

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

终于问题解决 释怀了!

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL解析XML

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

xml解析

XML 指可扩展标记语言(eXtensible Markup Language)。XML 被设计用来传输和存储数据。而HTML被用来显示数据。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,
2023-01-30

Python 解析XML

Python中对两种解析方式的解释:The Python standard library provides a minimal but useful set of interfaces to work with XML.The two m
2023-01-31

Python XML解析

Python XML解析----http://www.w3cschool.cn/python/python-xml.htmlPython中使用ElementTree对XML文件进行解析----http://www.jianshu.com/p
2023-01-31

运用SQL SERVER 2005 CLR解决XML 的实例分析

运用SQL SERVER 2005 CLR解决XML 的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。大家都知道SQL SERVER 2005 CLR(
2023-06-17

PL/SQL中的XML处理与解析方法是什么

PL/SQL中可以使用XMLType数据类型来处理和解析XML数据。XMLType数据类型可以存储XML文档,并提供了一些内置的方法来处理和解析XML数据。一些常用的XML处理和解析方法包括:EXTRACTVALUE:用于提取XML文档中指
PL/SQL中的XML处理与解析方法是什么
2024-05-08

SQL 中的For Xml Path详解

今天就给大家介绍一下FORXMLPATH,它就是用来处理低版本数据库中数据合并的,是一个比较古老的功能了,新版本中也依然还能使用,对SQL 中的For Xml Path相关知识感兴趣的朋友一起看看吧
2022-11-13

Python XML解析之Element

参考网址:http://www.runoob.com/python/python-xml.htmlhttps://docs.python.org/2/library/xml.etree.elementtree.html菜鸟教程提供了基本的X
2023-01-30

java怎么解析XML

本篇内容主要讲解“java怎么解析XML”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么解析XML”吧!目录XML的主要用途对比HTML关于XML文件的解析?JDK自带的一套解析XML
2023-06-20

Python xml解析记录

Python的xml解析方式自带的有3种,xml.dom.*、xml.sax.*以及xml.etree.ElementTree,相对来说,xml.etree.ElementTree最快捷方便。因为自己只使用了xml.etree.Elemen
2023-01-31

如何使用 Java XmlBeans 来解析 XML?(Java XmlBeans怎样解析XML)

在Java开发中,解析XML是一项常见的任务。XmlBeans是Java平台上用于处理XML数据的一个库,它提供了一种方便且高效的方式来解析和生成XML文档。本文将介绍如何使用JavaXmlBeans来解析XML。一、准备工作
如何使用 Java XmlBeans 来解析 XML?(Java XmlBeans怎样解析XML)
Java2024-12-18

Python XML解析之DOM

DOM说明:DOM:Document Object Model APIDOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问。https://docs.python.org/2/library/xm
2023-01-30

python xml解析实例详解

python xml解析 first.xml 1 fsy 24 2
2022-06-04

Python中怎么解析XML

本篇文章给大家分享的是有关Python中怎么解析XML,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python解析XML代码示例:< text > < font size="
2023-06-17

Python解析XML字符串

# -*- coding: utf-8 -*-    import xml.sax  import xml.sax.handler    class XMLHandler(xml.sax.handler.ContentHandler):  
2023-01-31

Python中如何解析XML

Python中如何解析XML,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是XML?XML是可扩展标记语言(Extensible Markup Langua
2023-06-17

Java如何解析 XML 文档

本教程详细介绍了使用Java解析XML文档的两种主要方法:DOM解析和SAX解析。DOM解析:将整个XML文档加载到内存中,创建一棵树形表示文档结构。它适合需要随机访问文档各个部分的情况。SAX解析:按顺序处理XML文档事件,比DOM解析器更快,因为它不会将整个文档加载到内存中。适合需要按顺序处理文档的情况。
Java如何解析 XML 文档
2024-04-02

编程热搜

目录