-1

假设一个名为的游标cur(param_1 number,param_2 varchar2)返回三个值,如下所示

地名值
pl1芒果好
pl2葡萄不好
pl3苹果好
pl4橘色很好

如何从该光标中单独获取每个值并执行操作,就像我想要获取pl1并执行此操作一样

for y in cur1(param_1,param_2) loop
if y.place='pl1' then
do this
elsif y.place='pl2' then
do this
else 
do this.
end if;

在我的程序中出现错误说

错误:'pls-00364:循环索引变量'y'使用无效'。

有什么建议吗?

4

1 回答 1

1

您正在y循环内使用索引值。

像这样的代码SQL Fiddle应该可以工作,至少它对我有用。

DECLARE
  CURSOR cur(param_1 number,param_2 varchar2) IS
     SELECT place, name, value FROM product;

  auxCur cur%ROWTYPE;

BEGIN
  FOR y IN cur(1,'2') LOOP
    IF auxCur.place = 'pl1' THEN
        dbms_output.put_line('1');
      ELSIF auxCur.place = 'pl2' THEN
        dbms_output.put_line('2');
      ELSE
        dbms_output.put_line('3');
    END IF;
  END LOOP;
END;
于 2012-08-22T07:48:24.513 回答