假设名为cur(param_1 number,param_2 varchar2)
的游标返回三个值,如bellow
place name value pl1 mango good pl2 grapes not good pl3 apple good pl4 orange very good
如何从这个游标单独获取每个值并执行操作,就像我想要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'使用无效'。
有任何建议吗?
答案 0 :(得分: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;