Oracle 存储过程 解析xml

    xiaoxiao2021-03-25  110

    Oracle 存储过程 解析xml

    mark下……

    DECLARE --定义xml 串 s_xmlstr VARCHAR2(420) := '<input> <start>201701</start> <end>201705</end> <code>1324123412431</code> </input>'; PROCEDURE p( prm_integer PLS_INTEGER )AS BEGIN dbms_output.put_line(prm_integer); END p; --解析xml 的存储过程 PROCEDURE xml_parse_service( prm_in_inputdate IN VARCHAR2 -- 入参: xml串 )AS -- 变量定义 s_result VARCHAR2(500); s_code VARCHAR2(500); s_start VARCHAR2(6); s_end VARCHAR2(6); BEGIN BEGIN SELECT extractvalue(VALUE(t), '/input/code'), extractvalue(VALUE(t), '/input/start'), extractvalue(VALUE(t), '/input/end') INTO s_code, s_start, s_end FROM TABLE(xmlsequence(extract(xmltype(prm_in_inputdate), '/input'))) t; EXCEPTION WHEN OTHERS THEN s_result := '解析输入参数出错,错误原因[' || SQLERRM || ']!'; RETURN; END; DBMS_OUTPUT.PUT_LINE('s_code :' ||s_code); DBMS_OUTPUT.PUT_LINE('s_start :'||s_start); DBMS_OUTPUT.PUT_LINE('s_end :'||s_end); END xml_parse_service; BEGIN p(213); --存储过程调用 xml_parse_service(s_xmlstr); END;

    我个人觉得这种隐含代码块用来学习还是不错的。 xmltype: 转成一个 xml对象。

    数据库解析xml,这样方便多了。

    转载请注明原文地址: https://ju.6miu.com/read-20105.html

    最新回复(0)