DECLARE
CURSOR pdct_rowcount_cur
IS SELECT * FROM productinfo;
TYPE pdct_tab IS TABLE OF productinfo%ROWTYPE;
pdct_count_rd pdct_tab;
BEGIN
OPEN pdct_rowcount_cur;
LOOP
Fetch pdct_rowcount_cur bulk collect into pdct_count_rd LIMIT 2 ;
For i in pdct_count_rd.first..pdct_count_rd.last loop
Dbms_output.put_line('产品ID:'|| pdct_count_rd(i).productid || '产品名称:'||
pdct_count_rd(i).productname ||'产品价格:' ||
pdct_count_rd(i).productprice);
END LOOP;
IF MOD(pdct_rowcount_cur%ROWCOUNT,2)=0 THEN
dbms_output.put_line('读取到了第'|| pdct_rowcount_cur%ROWCOUNT||'表记录');
ELSE
dbms_output.put_line('读取到单条记录为第' || pdct_rowcount_cur%ROWCOUNT || '条记录');
END IF;
EXIT WHEN pdct_rowcount_cur%NOTFOUND;
END LOOP ;
CLOSE pdct_rowcount_cur ;
END;以上代码我在SQL DEVELOPER 中运行,对话框提示:ORA:06502,PL/SQL 数值或值错误,
ORA:06512,在line 10 ,请问错误在哪里,我如何修改,谢谢。
顺便问一下,我在SQL DEVELOPER 中使用 SQL WINDOWS ,然后写上这些代码,这样做对吗???
CURSOR pdct_rowcount_cur
IS SELECT * FROM productinfo;
TYPE pdct_tab IS TABLE OF productinfo%ROWTYPE;
pdct_count_rd pdct_tab;
BEGIN
OPEN pdct_rowcount_cur;
LOOP
Fetch pdct_rowcount_cur bulk collect into pdct_count_rd LIMIT 2 ;
For i in pdct_count_rd.first..pdct_count_rd.last loop
Dbms_output.put_line('产品ID:'|| pdct_count_rd(i).productid || '产品名称:'||
pdct_count_rd(i).productname ||'产品价格:' ||
pdct_count_rd(i).productprice);
END LOOP;
IF MOD(pdct_rowcount_cur%ROWCOUNT,2)=0 THEN
dbms_output.put_line('读取到了第'|| pdct_rowcount_cur%ROWCOUNT||'表记录');
ELSE
dbms_output.put_line('读取到单条记录为第' || pdct_rowcount_cur%ROWCOUNT || '条记录');
END IF;
EXIT WHEN pdct_rowcount_cur%NOTFOUND;
END LOOP ;
CLOSE pdct_rowcount_cur ;
END;以上代码我在SQL DEVELOPER 中运行,对话框提示:ORA:06502,PL/SQL 数值或值错误,
ORA:06512,在line 10 ,请问错误在哪里,我如何修改,谢谢。
顺便问一下,我在SQL DEVELOPER 中使用 SQL WINDOWS ,然后写上这些代码,这样做对吗???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货