当表中某字段是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
分享到:
相关推荐
10. 使用Oracle特有的扩展:比如正则表达式、XML数据处理、以及JSON数据处理等高级功能。 【部分内容】中的知识点: 提供的【部分内容】部分并不是具体的Oracle SQL编程知识点,而是一个重复的网址:“Download at...
Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它为数据库管理员(DBA)、开发者以及数据分析师提供了全面的功能,以高效地管理和操作Oracle数据库。本文档将深入讲解Oracle SQL Developer的...
### ORACLE操作XML函数 #### 一、XMLTYPE_instance与XPath_string 在Oracle数据库中,`XMLTYPE`是一种专门用于存储XML数据的数据类型。通过使用`XMLTYPE`字段,可以有效地管理和查询XML文档。其中,`XPath_string`...
总之,SQL与XML的互操作性是现代数据库开发中不可或缺的一部分,Oracle通过其XML DB组件提供了强大的工具和功能,使得开发人员和DBA能够高效地处理存储在数据库中的XML文档。理解和掌握这些特性对于在Oracle数据库...
在提供的“Oracle_Xml.java”文件中,很可能是Java程序示例,展示了如何在Oracle数据库中进行XML操作。可能包含创建XMLType对象、插入XML数据、查询XML数据以及使用XQuery或XSLT进行转换的代码片段。而...
- SQL(Structured Query Language)是数据库管理和数据操作的标准语言,Oracle通过其PL/SQL提供了过程化编程的能力。 - 书名中的“Pro”暗示了书籍内容针对的是对Oracle SQL有一定了解的中级到高级用户,意在使...
7. **XMLDB API**: Oracle提供了一系列的API,如Java、PL/SQL等,供开发者调用,以便于在应用程序中存取和操作XML数据。 8. **XML Schema支持**: Oracle9i支持XML Schema,用于定义XML文档的结构和数据类型,增强了...
Oracle数据库是世界上最广泛使用的数据库系统之一,其PL/SQL编程语言是进行数据库操作的重要工具。在某些场景下,我们可能需要将数据导出为Excel格式,以便于数据分析或报告生成。Oracle提供了一种方法,通过生成XML...
`XMLTable`函数是Oracle提供的一种用于解析XML文档的方法,它可以将XML数据转换为关系表形式,便于使用SQL进行查询操作。在给定的例子中,使用了`XMLTable`函数来解析XML文档,并从中提取出所需的`id`和`name`字段...
在提供的代码片段中,定义了一个名为`add_to_stockmarket`的过程,其功能是从指定的XML文件中读取数据并将其插入到名为`Stockmarket`的表中。 1. **参数说明**:该过程接受一个输入参数`fileName`,类型为`VARCHAR2...
5. **PL/SQL与XML**: PL/SQL是Oracle的编程语言,它支持直接操作XML数据。通过使用内置的XML函数和包,如DBMS_XMLGEN和DBMS_XSLPROCESSOR,开发者可以在PL/SQL存储过程和函数中生成、解析和处理XML。 6. **Web服务*...
4. **PL/SQL与XML**:Oracle的PL/SQL编程语言扩展了对XML的支持,包括XML的创建、解析、修改和序列化操作。开发者可以通过PL/SQL函数和过程处理XML数据。 5. **BINARY XML**:Oracle还提供了Binary XML存储选项,以...
SQL/XML是SQL标准中的一部分,它允许在SQL数据库中存储、查询和操作XML数据。这个"SQL_XML.zip_sql_xml_zip"文件可能是一个压缩包,包含了关于如何使用SQL处理XML数据的教程或示例代码。从文件名来看,我们可以推测...
总之,XML导入Oracle表的过程涉及到XML解析、数据映射和数据库操作。通过灵活使用Oracle提供的工具和功能,可以有效地将XML数据整合到数据库中,满足各种业务需求。在实际操作中,应根据具体项目规模和需求选择合适...
Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它专为开发人员和数据库管理员设计,提供了全面的界面来管理Oracle数据库。这款64位版本的SQL Developer在处理大型数据库时能提供更好的性能和...
Oracle SQL Handler,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。国产原创,精品奉献,无序列号限制,仅凭使用满意度随意赞助就可永久使用! Oracle SQL Handler 特点...
SQL*Loader适用于大量数据的快速导入,而XMLType提供了对XML数据的直接操作和支持,更适合需要频繁查询和处理XML结构的场景。选择哪种方式取决于你的具体需求和数据量。在实际应用中,可能需要结合使用这两种方法,...
在Java编程中,链接Oracle数据库并生成XML...总的来说,Java连接Oracle数据库生成XML文件的过程涉及到数据库操作、XML处理和可能的特定格式要求。正确理解和运用这些技术,可以帮助开发者高效地完成数据的读取和转换。
Oracle提供了丰富的API和函数来操作XMLType,如XMLQuery、XMLExists、XMLCast、XMLTable等,这些函数使得在SQL中处理XML变得简单易行。 3. **XQuery**: XQuery是用于查询XML数据的标准语言,Oracle支持XQuery用于对...