使用游标和过程查找记录

问题描述 投票:0回答:1

my diagrams for the libaray project

我不知道该如何用游标编写适当的过程。我正在绞痛吗?

procedure1: for given student show all titles of books he ever rented
--no such student  no recordsexcep

    SET SERVEROUTPUT ON
create or replace procedure showRENTS(v_idStudent int)
as

v_NameOfBook varchar2(100);
--v_count int;
no_such_id EXCEPTION;
cursor c1 is
select NameOfbook from book
where 
begin 
open c1;
loop 
fetch c1
into v_fname,v_lname;
--select count(1) into v_count from Student where idStduent =v_id ;
--if
--v_count = 0;
--then raise no_such_id;
--end if;
exit when c1%notfounf
end loop; 
close c1;
end;
/
sql plsql cursor procedure
1个回答
0
投票

我看不到图像,但是-您发布的过程可以重写为

CREATE OR REPLACE PROCEDURE showrents (v_idstudent IN INT)
AS
BEGIN
   FOR c1 IN (SELECT nameofbook FROM book)
   LOOP
      DBMS_OUTPUT.put_line (c1.nameofbook);
   END LOOP;
END;
/

我建议您使用游标FOR循环-因为Oracle会为您完成大部分工作,因此编写和维护起来更简单(您不必声明游标变量,打开游标,从中获取游标,请注意退出循环,关闭光标)。

我不确定它的参数与它有什么关系,但是我离开了它;我想您稍后会添加一些代码。

希望它能帮助您入门。

© www.soinside.com 2019 - 2024. All rights reserved.