之前写了一个返回游标的存储过程,但是当我在尝试使用参数的时候,却又遇到了一个问题,如何使用参数。
我的语句是这样的:
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。