当表中某字段是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
分享到:
相关推荐
Oracle SQL Handler,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。国产原创,精品奉献,无序列号限制,仅凭使用满意度随意赞助就可永久使用! Oracle SQL Handler 特点...
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具:超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括 ...
Oracle P/L SQL生成XML格式的Excel内容,包体经过打包处理plb,内付包头说明和测试案例(调用例子),感兴趣用户可以下载下来。
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
《Oracle SQL疑难解析》总结了针对Oracle数据库编写SQL时经常碰到的各种问题,提供大量现成的解决方法,包括汇总和聚合数据、多表数据查询、生成和获取数据、通用查询模式、日期和时间值的处理、字符串、处理数字、...
用JSP、Servlet、Oracle、SQLServer写的工具,...可以选择两种数据库连接:Oracle或SQLServer,然后指定Oracle中的用户或SQLServer中的库,以及相应的表、字段,按XSL定义的XML样式预览要生成的XML,然后导出成XML文件
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
Oracle SQL Handler 是一款是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 开发工具(客户端工具)。 它是超智能的SQL编辑器,超方便的表格操作(象操作Excel表格一样方便地选择行/列/单元格数据;...
Written by members of the Oracle XML group, this is a must-have reference for all IT managers, DBAs, and developers who want to learn the best practices for using XML with Oracle’s XML-enabled ...
Oracle数据库的XML SQL Utility技术.pdf
本文详细说明了Oracle对XML文件的操作。 详细说明了以下操作: 通过 sql 在 oracle 中建立 xml 表 通过 sql 将 xml 文件信息 插入 oracle 表 通过 sql 查询 xml 表 信息。 ....
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具 : 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据库表 );多种格式的数据导出包括...
oracle xml sql学习资料,有关oracle xml dbsql语句的拼写
Oracle9i XML网络数据库开发指南(PDF)
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...
最近学习xml,老师布置了实现access ,sqlserver,oracle,mysql与xml之间数据的相互转换,终于费劲心思搞定了,是用java写的!与大家分享一下!
完全涵盖了最新版本Oracle数据库的功能和技术,指导读者编写SQL语句以检索和修改数据库中的信息、掌握SQL*Plus和SQL Developer、处理数据库对象、编写PL/SQL程序、采用性能优化技术、结合XML以及其他技术。...