oracle存储过程中where动态条件

颜兮之 2014-10-15 06:58:07
oracle存储过程中,where中的一个AND条件怎么动态设置呢?
SELECT  COUNT(*) sl
INTO temp_sl
FROM TEST WHERE RQ >= prm_rptOn
AND para AND JG < JG_AVG;


片段中的para是参数,也就是查询的一部分(比如:a>b and b>c 或者 a<c and d<c)这样实现的话,怎么拼写呢?
...全文
1180 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-10-15
  • 打赏
  • 举报
回复
Set serveroutput on;  
  
Declare  
    ---define cursor type name  
    type cur_type is ref cursor;  
    cur_policy cur_type;  
    sqlStr varchar2(500);  
    rec_policy t_contract_master%rowtype;  
begin  
   ---define 动态Sql  
   sqlStr := 'select cm.policy_code, cm.applicant_id, cm.period_prem,cm.bank_code,cm.bank_account from t_contract_master cm  
     where cm.liability_state = 2   
     and cm.policy_type = 1   
     and cm.policy_cate in (2,3,4)   
     and rownum < 5   
     order by cm.policy_code desc ';  
---Open Cursor  
  open cur_policy for sqlStr;  
  loop  
       fetch cur_policy into rec_policy.policy_code, rec_policy.applicant_id, rec_policy.period_prem,rec_policy.bank_code,rec_policy.bank_account;  
       exit when cur_policy%notfound;  
         
       Dbms_Output.put_line('Policy_code:'||rec_policy.policy_code);  
    
  end loop;  
close cur_policy;      
  
end;
bw555 2014-10-15
  • 打赏
  • 举报
回复
颜兮之 2014-10-15
  • 打赏
  • 举报
回复
引用 4 楼 bw555 的回复:
查询结果如果是1条记录就可以用execute immediate into 的用法 如果结果是多条可以采用动态游标实现,open cursor for
多条记录,但是需要不同的查询结果做表连接呢,想静态的select那样,可以实现吗?
bw555 2014-10-15
  • 打赏
  • 举报
回复
查询结果如果是1条记录就可以用execute immediate into 的用法 如果结果是多条可以采用动态游标实现,open cursor for
颜兮之 2014-10-15
  • 打赏
  • 举报
回复
哦,知道了,还有个问题。就是execute immediate执行select动态sql的时候,能像静态sql一样,实现这样的功能吗? select a.a from (select a from a)a,(select a from b)b where ....
bw555 2014-10-15
  • 打赏
  • 举报
回复
动态sql 百度下 execute immediate into 用法
CT_LXL 2014-10-15
  • 打赏
  • 举报
回复
引用 楼主 rrunning_163_com 的回复:
oracle存储过程中,where中的一个AND条件怎么动态设置呢?
SELECT  COUNT(*) sl
               INTO temp_sl
    FROM    TEST    WHERE   RQ >= prm_rptOn
                  AND para            AND JG < JG_AVG;
片段中的para是参数,也就是查询的一部分(比如:a>b and b>c 或者 a<c and d<c)这样实现的话,怎么拼写呢?
动态SQL,先拼接成字符串,然后动态执行,具体用法百度

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧