存储过程

1、建立存储过程完成图书管理系统中的借书功能。
   功能要求:                  
l    借书时要求输入借阅流水号,借书证号,图书编号。(即该存储过程有3个输入参数)                        
l    借书时,借书日期为系统时间。
l    图书的是否借出改为‘是’  

create or replace procedure lendBook
(
 v_lendid  lend.lid%type,
 v_readerid  reader.rid%type,
 v_bookid book.bid%type
)
as
begin
     insert into lend values(v_lendid, v_readerid, v_bookid,SYSDATE, NULL, NULL, NULL);
     update book set b_isborrow= '是'
     where book.bid = v_bid;
end;
 

2、建立存储过程完成图书管理系统中的预约功能。
l    预约时要求输入预约流水号,借书证号,ISBN。(即该存储过程有3个输入参数)
l    存储过程先检查输入的ISBN版本的图书是否都已借出,如果是则进行预约,否则提示“该书目有可借图书,请查找”。
l    预约时间为系统时间。

create or replace procedure bookingBook
(
 v_bookingid booking.bookid%type,
 v_readerid  reader.rid%type,
 v_bookid book.isbn%type
)
as
  v_not_borrow number;
begin
     --insert into lend values();
     select count(*) into v_not_borrow
     from book
     where book.b_isborrow = '否';
     if v_not_borrow = 0 then
       insert into booking values(v_bookingid, v_readerid, v_bookid, SYSDATE);
     else
         dbms_output.put_line('该书目有可借图书,请查找');
     end if;
end;

 

3、建立存储过程完成图书管理系统中的还书功能。
l    还书时要求输入借书证号,图书编号,罚款分类号(即该存储过程有3个输入参数)。
l    还书日期为系统时间。
l    图书的是否借出改为‘否’。

create or replace procedure sendBack
(
 v_rid lend.rid%type,
 v_bid  lend.bid%type,
 v_fid lend.fid%type
)
as
begin
     update lend
     set
     enddate = SYSDATE,
     fid = v_fid
     where
          v_rid = rid
          and v_bid = bid;

     update book
     set book.b_isborrow = '否';
end;

你可能感兴趣的:(数据库)