使用输入变量打开select语句的游标

时间:2013-12-10 07:46:26

标签: stored-procedures oracle11g cursor packages

我的包中有两个游标。第一个Cursor没有输入参数,所以我已成功打开它:

OPEN c1 for
       SELECT foracid,
         acct_name,
         addr_1,
         addr_2,
         sol_desc,
         city_code,
         gam.FUTURE_UN_CLR_BAL_AMT
       FROM tbaadm.gam,
         tbaadm.sol
       WHERE gam.sol_id   = sol.sol_id
         AND schm_type     IN ('CAA','ODA','LAA')
         AND schm_code NOT IN ('CTSTF');
     CLOSE c1;

但我的第二个Cursor有一个输入参数,我不能这样做:

 OPEN c2 (vMyName varchar2) for select .....

因为这个错误:

Found Varhcar2 Expecting : ) and -or...

我可以用这种方式打开这个光标,或者我应该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

create or replace procedure proc (c2 OUT SYS_REFCURSOR) AS

vMyName varchar2(100);

begin
  vMyName := 'Some Value';

  open c2 for
    select col1, col2, col3
    from tab1
    where val = vMyName;
end;