存储过程动态参数

create or replace procedure testdynamicparams(p_cmbno      in varchar2,
                                              p_trade_date in varchar2) is
      cursor testcursor is
            select cmbno, trade_date, securno, turnover
            from   xxx t
            where  1 = 1 and
                   ((p_cmbno is null) or (t.cmbno = p_cmbno)) and
                   ((p_trade_date is null) or
                   (t.trade_date = p_trade_date));
      v_testcur testcursor%rowtype;
begin
      open testcursor;
      loop
            fetch testcursor
                  into v_testcur;
            exit when testcursor%notfound;
            dbms_output.put_line(v_testcur.cmbno || '-------' ||
                                 v_testcur.securno || '--------' ||
                                 v_testcur.turnover);
      end loop;
      close testcursor;
end testdynamicparams;

说明:当p_cmbno = null时,where 后面是1=1 and p_cmbno is null
      当p_trade_date = null && p_cmbno = null时就是1=1 and p_cmbno is null and p_trade_date is null
      如果都不为Null,就是1=1 and t.cmbno = p_cmbno and t.trade_date = p_trade_date;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值