带条件的返回游标的存储过程

之前写了一个返回游标的存储过程,但是当我在尝试使用参数的时候,却又遇到了一个问题,如何使用参数。

我的语句是这样的:

 create or replace procedure getcur(itemid varchar2,itemname varchar2,p_rc out sys_refcursor)
    is
     sqlstr varchar2(500);
     begin
         sqlstr:='select * from item item_id='||item_id||'itemname='itemname;
         open p_rc for sqlstr ;
     end getcur;

 但是不行,总是报错。

经过一份的折腾,终于试验出来正确的写法

  create or replace procedure getcur(itemidb varchar2,itemnameb varchar2,p_rc out sys_refcursor)
    as   
     begin
         open p_rc for select * from item where itemname=itemnameb and item_id=itemidb ;
     end getcur;

 其实那个引号是不要有的,只要把引号去了就可以了。但是变量名不能与字段名相同,我的变量多在最后加了一个b。

你可能感兴趣的:(存储过程)