Oracle 存储过程 解析xml

来源:互联网 发布:php base64解码成图片 编辑:程序博客网 时间:2024/05/17 23:08

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    )ASBEGIN  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,这样方便多了。

0 0