1、见下面的例子
create or replace procedure p_qr_stu_cid(s_id in number, c_id out number) as begin select t.class_id into c_id from student t where t.s_id = s_id; end;
上面的存储过程,我们可以编译通过,也比较简单,看着没有什么问题,了入参s_id与数据库表student的s_id相同之外,其他没有什么特殊的了,我们进行调试:
ORA-01422: 实际返回的行数超出请求的行数 ORA-06512: 在 "SCOTT.P_QR_STU_CID", line 4 ORA-06512: 在 line 7 View program sources of error stack?
提示的错误信息是与预期的返回单行不匹配,检查数据库:结果确确实实只能返回一条啊。但确实,问题就出在入参s_id与表字段同名的问题上。
我们对入参做一些修改:
create or replace procedure p_qr_stu_cid(i_s_id in number, c_id out number) as begin select t.class_id into c_id from student t where t.s_id = i_s_id; end;
再次调试程序