createor replace procedure Procedure_借书 ( vis_借阅流水号 in 借阅.借阅流水号%type, vis_借书证号 in 借阅.借书证号%type, vis_图书编号 in 借阅.图书编号%type ) as begin insertinto 借阅 values(vis_借阅流水号,vis_借书证号,vis_图书编号,sysdate,null,null,null); update 图书 set 图书.是否借出 ='是' where 图书.图书编号 = vis_图书编号; end;
createor replace procedure Procedure_预约 ( vis_预约流水号 in 预约.预约流水号%type, vis_借书证号 in 预约.借书证号%type, vis_ISBN in 预约.ISBN%type ) as vis_数量 number; begin selectcount(*) into vis_数量 from 图书 where 图书.ISBN=vis_ISBN and 图书.是否借出='否'; if vis_数量=0then insertinto 预约 values(vis_预约流水号,vis_借书证号,vis_ISBN,sysdate); commit; else dbms_output.put_line('该书目有可借图书,请查找!'); end if; end;
建立存储过程完成图书管理系统中的还书功能。
还书时要求输入借书证号,图书编号,罚款分类号(即该存储过程有3个输入参数)。
还书日期为系统时间。
图书的是否借出改为‘否’。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
createor replace procedure Procedure_还书 ( vis_借书证号 in 借阅.借书证号%type, vis_图书编号 in 借阅.图书编号%type, vis_罚款分类号 in 借阅.罚款分类号%type ) as begin update 借阅 set 借阅.归还日期=sysdate,借阅.罚款分类号=vis_罚款分类号 where 借阅.借书证号=vis_借书证号 and 借阅.图书编号=vis_图书编号; update 图书 set 图书.是否借出='否' where 图书.图书编号=vis_图书编号; end;
createor replace procedure Processed_借书 ( vis_借书证号 in 借阅.借书证号%type, vis_图书编号 in 借阅.图书编号%type ) as vis_是否借出 图书.是否借出%type; begin select 是否借出 into vis_是否借出 from 图书 where vis_图书编号 = 图书.图书编号; if vis_是否借出='是'then dbms_output.put_line('该书已经被借走了!'); else select 图书.是否借出 into vis_是否借出 from 图书 where 图书.图书编号=vis_图书编号; insertinto 借阅(借书证号,图书编号,借书日期) values(vis_借书证号,vis_图书编号,sysdate); commit; end if; end;
createor replace procedure Processed_还书 ( vis_借书证号 in 借阅.借书证号%type, vis_图书编号 in 借阅.图书编号%type ) as vis_是否借出 图书.是否借出%type; begin update 借阅 set 借阅.归还日期 = sysdate() where 借阅.借书证号 = vis_借书证号 and 借阅.图书编号 = vis_图书编号 and 借阅.归还日期 isnull; end;