DECLARE
成都创新互联是专业的汨罗网站建设公司,汨罗接单;提供成都做网站、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行汨罗网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!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;