对Oracle数据库操作xml数据的简单介绍:
项目中真实操作,由于需要将客户的录入信息暂存在流程表的一个字段中以xml形式,而在不借助中间表的条件。
首先我们可以先把后台获取到的实例对象转成xml类型:
//XStream与DOMDriver都是来自xstream-版本号.jar包下的
XStream stream = new XStream(new DomDriver());
//然后将实例对象转成xml格式
String xml = stream.toXML(实例对象名);
比如我们获取到的xml为下面这个值,并将xml存放在Person表的operation(字段类型为CLOB)字段中:
<student>
<name> henry </name>
<age> 23 </age>
<sex> male </sex>
<currencyNo>R</currencyNo>
<email> balabala@163.com </email>
</student>
当我们需要拿出xml中的某个值来比对或者查询的时候,可以如下操作:
--1、获取xml中某个标签的值可以这样写,用XMLTYPE类型对XML解析:
SELECT
EXTRACT(xmltype(a.operation),'/student/currEncyNo/text()').getStringVal() as currencyNo
FROM Person a
由于本地库自己设了三条数据,看结果图:
在这里只是给大家简单介绍一下读取xml类型字段的标签下的某个值,如果大家想了解更多操作xml数据的高级方法,可以参考Oracle的官方文档,给的很详细:
https://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb04cre.htm#sthref465