oracle存储过程的问题

有一个reader表,其中有一个列是READER_IDNUMBER(3),我想写个存储过程输出全部READER_ID,createorreplaceprocedureqq... 有一个reader表,其中有一个列是 READER_ID NUMBER(3),我想写个存储过程输出全部READER_ID,
create or replace procedure qq as
aa number(3);
begin

select reader_id into aa from reader ;
loop
dbms_output.put_line(aa);
end loop;
exception
WHEN NO_DATA_FOUND THEN dbms_output.put_line('NO_DATA_FOUND');
end qq;
这样会"实际返回的行数超出请求的行数",求解决.
展开
 我来答
为民服务而注册
2011-12-15 · TA获得超过158个赞
知道答主
回答量:70
采纳率:0%
帮助的人:47.5万
展开全部
你声明的变量aa仅能放置一行的一个字段的数据。
你的reader表中不只一行数据。

试试使用游标如下:
for cur in (select reader_id from reader)
loop
dbms_output.put_line(cur.reader_id );
end loop;
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
x403879785
2011-12-15 · TA获得超过3839个赞
知道大有可为答主
回答量:1299
采纳率:100%
帮助的人:1174万
展开全部
你可以试试这样定义变量 aa reader%rowtype; 或者 aa reader.reader_id%type 如果还是不行,用下面这个代码。 create or replace procedure qq as declare type tp is ref cursor; v_tp tp; aa reader%rowtype; begin open v_tp for select * from reader; loop fetch v_tp into aa; exit when aa%notfound; dbms_output.put_line(aa.reader_id ||' '); end loop; close v_tp; exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('NO_DATA_FOUND'); end qq;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式