`
zhuchengzzcc
  • 浏览: 442576 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle sql操作xml

 
阅读更多

    当表中某字段是clob类型,保存的是xml格式的信息,如何利用sql来解析xml呢?

 

    oracle自带强大的xmlPar(function),具体如下:

   

<root>
<Version id="1">
<ConfigResource>
   <Products class="java.util.ArrayList"/>
   <Properties class="java.util.ArrayList">
      <Property>
         <Name>name</Name>
         <Value><![CDATA[控江]]></Value>
      </Property>
      <Property>
         <Name lang='cn'>alias</Name>
         <Value><![CDATA[控江-黄兴]]></Value>
      </Property>
      <Property>
         <Name>flag</Name>
         <Value><![CDATA[53]]></Value>
      </Property>
   </Properties>
</ConfigResource>
</Version>
</root>

 

 

    方法如下,可以写个function(或者存储过程等)来完成

 

   

create or replace function fun_gj_xml(xml_content in clob, name in varchar2)
  return varchar2 is
  v_result varchar2(2000);
  v_temp varchar2(2000);
  v_num number;
  xmlPar XMLPARSER.parser := XMLPARSER.NEWPARSER;   --XML解析器
  doc xmldom.DOMDocument;  --DOM文档对象
  tempNodes xmldom.DOMNodeList;
  tempNode xmldom.DOMNode;
  tempArrMap xmldom.DOMNamedNodeMap;
begin
  v_result := null;
  v_temp := null;
  v_num := 0;
  
  if xml_content is null then
    return v_result;
    end if;
  
  xmlPar := xmlparser.newParser;
  xmlparser.parseClob(xmlPar,xml_content);
  doc := xmlparser.getDocument(xmlPar);
  xmlparser.freeParser(xmlPar);

  tempNodes:=xmldom.getElementsByTagName(doc, 'Name');    -- 获取所有Name标签元素
  while v_num < xmldom.getLength(tempNodes) loop
    tempNode:=xmldom.item(tempNodes,v_num);
    if(xmldom.getNodeValue(xmldom.getFirstChild(tempNode)) = name) then -- 当前遍历Name节点值是否是传进来的name值
      tempArrMap :=xmldom.getAttributes(tempNode);
      v_temp :=v_temp || xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap,'lang')) || ','; --获取name=lang的属性值
    	tempNode := xmldom.getNextSibling(tempNode); --Value   获取下一个兄弟元素,即Value标签
      v_temp := v_temp || xmldom.getNodeValue(xmldom.getFirstChild(tempNode)); --获取Value节点值
      exit;
    end if;
    v_num := v_num+1;
    end loop;
    
  v_result := v_temp;
  return v_result;
end fun_gj_xml;

 

 

 

  结果如下:

 

 

 

 本文只是简单的示例,只为抛砖引玉,具体请参考资料。

  • 大小: 8.2 KB
分享到:
评论
1 楼 诸葛不忄亮 2015-05-29  
    

相关推荐

    Oracle SQL高级编程

    10. 使用Oracle特有的扩展:比如正则表达式、XML数据处理、以及JSON数据处理等高级功能。 【部分内容】中的知识点: 提供的【部分内容】部分并不是具体的Oracle SQL编程知识点,而是一个重复的网址:“Download at...

    Oracle SQL Developer 使用说明

    Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它为数据库管理员(DBA)、开发者以及数据分析师提供了全面的功能,以高效地管理和操作Oracle数据库。本文档将深入讲解Oracle SQL Developer的...

    ORACLE操作XML函数

    ### ORACLE操作XML函数 #### 一、XMLTYPE_instance与XPath_string 在Oracle数据库中,`XMLTYPE`是一种专门用于存储XML数据的数据类型。通过使用`XMLTYPE`字段,可以有效地管理和查询XML文档。其中,`XPath_string`...

    走进 SQL/XML

    总之,SQL与XML的互操作性是现代数据库开发中不可或缺的一部分,Oracle通过其XML DB组件提供了强大的工具和功能,使得开发人员和DBA能够高效地处理存储在数据库中的XML文档。理解和掌握这些特性对于在Oracle数据库...

    Oracle_Xml.rar_Oracle XML _oracle_xml oracle_xml数据库_操作 xml

    在提供的“Oracle_Xml.java”文件中,很可能是Java程序示例,展示了如何在Oracle数据库中进行XML操作。可能包含创建XMLType对象、插入XML数据、查询XML数据以及使用XQuery或XSLT进行转换的代码片段。而...

    pro oracle sql pdf

    - SQL(Structured Query Language)是数据库管理和数据操作的标准语言,Oracle通过其PL/SQL提供了过程化编程的能力。 - 书名中的“Pro”暗示了书籍内容针对的是对Oracle SQL有一定了解的中级到高级用户,意在使...

    Oracle9i XML网络数据库开发指南(PDF)

    7. **XMLDB API**: Oracle提供了一系列的API,如Java、PL/SQL等,供开发者调用,以便于在应用程序中存取和操作XML数据。 8. **XML Schema支持**: Oracle9i支持XML Schema,用于定义XML文档的结构和数据类型,增强了...

    Oracle P/L SQL生成XML格式的Excel内容

    Oracle数据库是世界上最广泛使用的数据库系统之一,其PL/SQL编程语言是进行数据库操作的重要工具。在某些场景下,我们可能需要将数据导出为Excel格式,以便于数据分析或报告生成。Oracle提供了一种方法,通过生成XML...

    oracle数据库的xml文件数据查询

    `XMLTable`函数是Oracle提供的一种用于解析XML文档的方法,它可以将XML数据转换为关系表形式,便于使用SQL进行查询操作。在给定的例子中,使用了`XMLTable`函数来解析XML文档,并从中提取出所需的`id`和`name`字段...

    oracle导入导出xml

    在提供的代码片段中,定义了一个名为`add_to_stockmarket`的过程,其功能是从指定的XML文件中读取数据并将其插入到名为`Stockmarket`的表中。 1. **参数说明**:该过程接受一个输入参数`fileName`,类型为`VARCHAR2...

    Oracle_XML开发手册

    5. **PL/SQL与XML**: PL/SQL是Oracle的编程语言,它支持直接操作XML数据。通过使用内置的XML函数和包,如DBMS_XMLGEN和DBMS_XSLPROCESSOR,开发者可以在PL/SQL存储过程和函数中生成、解析和处理XML。 6. **Web服务*...

    Oracle与XML开发

    4. **PL/SQL与XML**:Oracle的PL/SQL编程语言扩展了对XML的支持,包括XML的创建、解析、修改和序列化操作。开发者可以通过PL/SQL函数和过程处理XML数据。 5. **BINARY XML**:Oracle还提供了Binary XML存储选项,以...

    SQL_XML.zip_sql_xml_zip

    SQL/XML是SQL标准中的一部分,它允许在SQL数据库中存储、查询和操作XML数据。这个"SQL_XML.zip_sql_xml_zip"文件可能是一个压缩包,包含了关于如何使用SQL处理XML数据的教程或示例代码。从文件名来看,我们可以推测...

    xml导入Oracle表的简单方法

    总之,XML导入Oracle表的过程涉及到XML解析、数据映射和数据库操作。通过灵活使用Oracle提供的工具和功能,可以有效地将XML数据整合到数据库中,满足各种业务需求。在实际操作中,应根据具体项目规模和需求选择合适...

    oracle sql developer 附带说明

    Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它专为开发人员和数据库管理员设计,提供了全面的界面来管理Oracle数据库。这款64位版本的SQL Developer在处理大型数据库时能提供更好的性能和...

    Oracle SQL Handler(Oracle 开发工具) v5.1.zip

    Oracle SQL Handler,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。国产原创,精品奉献,无序列号限制,仅凭使用满意度随意赞助就可永久使用!   Oracle SQL Handler 特点...

    XML导入Oracle表

    SQL*Loader适用于大量数据的快速导入,而XMLType提供了对XML数据的直接操作和支持,更适合需要频繁查询和处理XML结构的场景。选择哪种方式取决于你的具体需求和数据量。在实际应用中,可能需要结合使用这两种方法,...

    java链接oracle数据库生成xml文件

    在Java编程中,链接Oracle数据库并生成XML...总的来说,Java连接Oracle数据库生成XML文件的过程涉及到数据库操作、XML处理和可能的特定格式要求。正确理解和运用这些技术,可以帮助开发者高效地完成数据的读取和转换。

    Oracle XML 开发手册

    Oracle提供了丰富的API和函数来操作XMLType,如XMLQuery、XMLExists、XMLCast、XMLTable等,这些函数使得在SQL中处理XML变得简单易行。 3. **XQuery**: XQuery是用于查询XML数据的标准语言,Oracle支持XQuery用于对...

Global site tag (gtag.js) - Google Analytics