create or replace procedure test2 is
cursor v_cur(n number) is
select num1, num2 from test where num1=n;
n1 number;
n2 number;
begin
open v_cur(1);
loop
fetch v_cur
into n1, n2;
dbms_output.put_line('n1=' || n1 || ',n2=' || n2);
exit when v_cur%notfound;
end loop;
close v_cur;
end;
数据库执行select num1, num2 from test where num1=1是返回1条记录,但是这个存储过程返回2条重复的记录,是否循坏可能写错了?
cursor v_cur(n number) is
select num1, num2 from test where num1=n;
n1 number;
n2 number;
begin
open v_cur(1);
loop
fetch v_cur
into n1, n2;
dbms_output.put_line('n1=' || n1 || ',n2=' || n2);
exit when v_cur%notfound;
end loop;
close v_cur;
end;
数据库执行select num1, num2 from test where num1=1是返回1条记录,但是这个存储过程返回2条重复的记录,是否循坏可能写错了?
解决方案 »
- oracle EBS R12克隆到50%出错问题
- oracle修改日期显示格式
- 紧急求助:如何把查到的结果拼成一行?
- 请高手帮我看看oracle 10 rac实例启动出现问题 谢谢了!!!!!!
- 并发控制问题,急!!!
- 菜鸟提问:一个触发器, 不知道哪儿错了?
- 如何定义某个字段的取值范围
- 调查:后台用unix系统,前台用win2000这种方式有什么缺点,有哪些系统是这么做的。
- 哪位大虾知道如何在oracle8i和oracle9i之间用imp/exp导数据!我试了不行啊!!
- oracle启动后自动关闭
- oracle10.1中不能嵌入pl/sql块????
- 关于C#插入空值给clob字段的问题(.net2.0+oracle9.2)
由
dbms_output.put_line('n1=' || n1 || ',n2=' || n2);
exit when v_cur%notfound;
改为:
exit when v_cur%notfound;
dbms_output.put_line('n1=' || n1 || ',n2=' || n2);
CURSOR V_CUR(N NUMBER) IS
SELECT NUM1, NUM2 FROM TEST WHERE num1 = N;
BEGIN
FOR I IN V_CUR(2) LOOP
DBMS_OUTPUT.PUT_LINE('n1=' || I.NUM1 || ',n2=' || I.NUM2);
END LOOP;
END;
/