oracle.xml解析,oracle解析xml例

455937

-- 例1:

DECLARE

v_xmlstr VARCHAR2(1000);

v_xml    XMLTYPE;

v_title  VARCHAR2(50);

v_language  VARCHAR2(50);

v_body  VARCHAR2(50);

BEGIN

v_xmlstr := '';

v_xml := XMLTYPE(v_xmlstr);    -- 生成XML

SELECT EXTRACTVALUE(VALUE(t),'/html/head/title')

,EXTRACTVALUE(VALUE(t),'/html/head/LANGUAGE')

,EXTRACTVALUE(VALUE(t),'/html/body')

INTO v_title ,v_language ,v_body

FROM TABLE(XMLSEQUENCE(EXTRACT(v_xml, '/html'))) t;    -- 提取XML节点值

dbms_output.put_line(v_title);

dbms_output.put_line(v_language);

dbms_output.put_line(v_body);

END;

/

结果:

This IS title.

JavaScript

I am BODY.

-- 例2:

DECLARE

TYPE v_languageset IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;

v_language      v_languageset;

v_xmlstr VARCHAR2(1000);

v_xml    XMLTYPE;

BEGIN

v_xmlstr := '';

v_xml := XMLTYPE(v_xmlstr);

-- 多个值放在表集合中

SELECT EXTRACTVALUE(VALUE(t),'/LANGUAGE')

BULK COLLECT INTO v_language

FROM TABLE(XMLSEQUENCE(EXTRACT(v_xml, '/html/LANGUAGE'))) t;

FOR i IN v_language.first .. v_language.last LOOP

dbms_output.put_line(v_language(i));

END LOOP;

END;

/

结果:

JavaScript

VBScript

JAVA

注意:XML是区分大小写的

-- The End --

11-21 14:11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值