【问题标题】:Open cursor for select statement with Input variables使用输入变量为 select 语句打开游标
【发布时间】:2013-12-10 07:46:26
【问题描述】:

我的包中有两个光标。第一个 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;

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

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

因为这个错误:

Found Varhcar2 Expecting : ) and -or...

我真的可以这样打开这个光标还是我应该怎么做?

【问题讨论】:

  • 说德语什么的人 :(
  • 是的,对不起,我的错...但我认为它无论如何都不能帮助您解决特定问题... :-/

标签: stored-procedures oracle11g cursor packages


【解决方案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;

【讨论】:

  • 参数 c2 应该是一个 OUT 变量。 c2 OUT SYS_REFCURSOR.
  • 谢谢,我修好了。
猜你喜欢
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
  • 2017-03-02
  • 2015-01-27
相关资源
最近更新 更多