zoukankan      html  css  js  c++  java
  • Oracle存储过程,以游标的方式返回一个记录集


    --创建一个包
    create or replace package types
    as
    type cursorType 
    is ref cursor;
    end types;

    --创建存储过程,游标类型返回参数
    create or replace procedure SP_Fee_Instance(v_company in varchar, v_sdate in nvarchar2, v_edate in nvarchar2,p_cursor in out types.cursorType) is
    -- vs_sql   varchar2(2000);
    --
    company    varchar2(100);  --公司编码
    --
    start_date varchar2(10);   --计划付款时间段[起]
    --
    end_date   varchar2(10);   --计划付款时间段[止]
    begin

    IF NVL(v_company,' '<> ' ' THEN
         
    OPEN p_cursor FOR
            
    select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark 
            
    from htgl_pact_apply a 
            
    inner join htgl_fee_instance i on a.apply_id = i.apply_id
            
    where a.payment_status=2         
            
    and a.company = v_company  
            
    and i.payment_date between to_date(v_sdate,'YYYY-MM-DD'and to_date(v_edate,'YYYY-MM-DD')
            
    group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
         
    null;
           
           
    -- dbms_output.put_line(company);
           -- dbms_output.put_line(start_date);

       
    ELSE
         
    OPEN p_cursor FOR
            
    select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark 
            
    from htgl_pact_apply a 
            
    inner join htgl_fee_instance i on a.apply_id = i.apply_id
            
    where a.payment_status=2         
            
    and i.payment_date between to_date(v_sdate,'YYYY-MM-DD'and to_date(v_edate,'YYYY-MM-DD')
            
    group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
          
    null;
       
    END IF;
           
    -- EXECUTE IMMEDIATE vs_sql;
    --
     EXECUTE IMMEDIATE vs_sql  into i;

    end SP_Fee_Instance;

    --下面是调用方法
    --
    execute SP_Fee_Instance('ass','','')


    注意:
    参数变量名称与数据表中字段名称不能同名
  • 相关阅读:
    关于lua扩展库lpack的使用指南
    mac下安装LuaSocket
    lua_の_进阶总结之基础篇
    minicap_工具使用
    AutoSense脚本日志总结(微信搜索【水勺子】公众号获取详情)
    六:Spring Security 中使用 JWT
    五:Spring Security 中的角色继承问题
    四:Spring Security 登录使用 JSON 格式数据
    二:整合Spring Security
    三:Spring Security 登录添加验证码
  • 原文地址:https://www.cnblogs.com/ding0910/p/741585.html
Copyright © 2011-2022 走看看