zoukankan      html  css  js  c++  java
  • oracle动态游标、动态sql、xml

    -- Created on 2018/7/20 by XHL 
    declare 
      -- Local variables here
      v_select varchar2(100);
      Type my_cursor is ref cursor;--声明动态游标类型
      v_cursor my_cursor;--定义动态游标变量
      病人id integer;
      总费用 number(9,2);
      totle integer:=0;
      v_xml_data clob;
      v_temp_xml xmltype;  
      out_xml xmltype;
    begin
      -- Test statements here
      --使用动态游标执行动态sql语句
      v_select:='select 病人id,sum(总费用) as 总费用 from zl9i_scsm.保险支付记录  group by 病人id order by 病人id';
      v_temp_xml:=xmltype('<OUT><RESULT><RESULT/></OUT>');
      open v_cursor for v_select; --打开自定义REF游标
      loop
        fetch v_cursor into 病人id,总费用; --指定行并into变量或%rowtype类型变量
        exit when v_cursor%notfound or totle>=10;   --退出循环条件
        totle:=totle+1;--记录总数
        v_xml_data:='<病人id>'||病人id||'<总费用>'||总费用||'</总费用></病人id>';--拼接xml数据
        select appendchildxml(v_temp_xml,'/OUT/RESULT',xmltype(v_xml_data)) into v_temp_xml from dual;
       end loop; 
       close v_cursor;--fetch循环游标需要关闭游标         
       out_xml:=v_temp_xml;
       --输出查看结果
       dbms_output.put_line(v_xml_data);
       exception
         when others then
            v_xml_data:='<result><totle>0</totle><data>错误代码:'||sqlcode||',错误消息:'||sqlerrm||'。<data/></result>';
    end;
    
  • 相关阅读:
    P2480 SDOI 古代猪文(自带其他详细基础数论)
    01 分数规划
    P2606 ZJOI2010 排列计数
    P4140 奇数国
    SHOI 2014 概率充电器
    P2157 SDOI2009 学校食堂
    分块
    斜率 优化 dp
    线段树树状数组从入门到跳楼
    Ogre::scene_blend 场景混合
  • 原文地址:https://www.cnblogs.com/cqxhl/p/12993307.html
Copyright © 2011-2022 走看看