oracle解析xml字符串常用脚本
DECLARE
成都创新互联专注于大英网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供大英营销型网站建设,大英网站制作、大英网页设计、大英网站官网定制、小程序制作服务,打造大英网络公司原创品牌,更为您提供大英网站排名全网营销落地服务。
l_operator VARCHAR2(100);
l_year VARCHAR2(10);
l_month VARCHAR2(10);
l_xml_str VARCHAR2(4000); --xml字符串报文
l_xmltype xmltype;
BEGIN
--给定XML报文串
l_xml_str := '
CODE1
CODE2
CODE3
';
--将XML报文转换成xmltype类型,便于后续解析
l_xmltype := xmltype.createxml(l_xml_str);
--普通简单的解析字段值
SELECT xmlt.operator
,xmlt.year
,xmlt.month
INTO l_operator
,l_year
,l_month
FROM xmltable('$root/XMLMSG/INFO' passing l_xmltype AS "root" columns operator VARCHAR2(500) path 'OPERATOR'
,YEAR VARCHAR2(500) path 'YEAR'
,MONTH VARCHAR2(500) path 'MONTH') AS xmlt;
dbms_output.put_line('operator:' || l_operator || '--year:' || l_year || '--month:' || l_month);
--遍历输出二维数组
FOR rec_list IN (SELECT xmlt.id
,xmlt.code
,xmlt.name
INTO l_operator
,l_year
,l_month
FROM xmltable('$root/XMLMSG/STRARRAYS/STRARRAY' passing l_xmltype AS "root" columns id VARCHAR2(500) path 'ID'
,code VARCHAR2(500) path 'CODE'
,NAME VARCHAR2(500) path 'NAME') AS xmlt) LOOP
dbms_output.put_line(rec_list.id || '--' || rec_list.code || '--' || rec_list.name);
END LOOP;
EXCEPTION
WHEN fnd_api.g_exc_error THEN
dbms_output.put_line('error:' || SQLCODE || '--' || SQLERRM);
WHEN fnd_api.g_exc_unexpected_error THEN
dbms_output.put_line('Unexpected_error.' || SQLCODE || '--' || SQLERRM);
WHEN OTHERS THEN
dbms_output.put_line('Other error:' || SQLCODE || '--' || SQLERRM);
END;
分享标题:oracle解析xml字符串常用脚本
本文路径:http://cdiso.cn/article/iiogic.html