您的位置:首页 > 数据库 > Oracle

西南科技大学 Oracle 数据库实验3 存储过程

2013-06-03 00:00 459 查看
1、建立存储过程完成图书管理系统中的借书功能。 功能要求:

借书时要求输入借阅流水号,借书证号,图书编号。(即该存储过程有3个输入参数)

借书时,借书日期为系统时间。

图书的是否借出改为‘是’

create or replace procedure leyout(out_id integer,s_id varchar2,book_id varchar2) as nowdate varchar2(12);
--tmp integer; begin select to_char(sysdate,'yyyy-mm-dd') into nowdate from dual;
--select count(*) into tmp from 图书 where 图书.图书编号 = book_id AND 图书.是否借出 = '否';
--if tmp<>0 then insert into 借阅(借阅流水号,借书证号,图书编号,借书日期) values(out_id,s_id,book_id,to_date(nowdate,'yyyy-mm-dd'));
update 图书 set 图书.是否借出 = '是' where 图书.图书编号 = book_id;
--end if;
commit;
end;


2、建立存储过程完成图书管理系统中的预约功能。

预约时要求输入预约流水号,借书证号,ISBN。(即该存储过程有3个输入参数)

存储过程先检查输入的ISBN版本的图书是否都已借出,如果是则进行预约,否则提示“该书目有可借图书,请查找”。

预约时间为系统时间。

CREATE OR REPLACE PROCEDURE yuyue(yy_id integer,s_id varchar2,isbn varchar2)
AS nowdate varchar2(12);
tmp integer;
BEGIN
SELECT to_char(sysdate,'yyyy-mm-dd') INTO nowdate FROM dual;
SELECT count(*) INTO tmp FROM 图书 WHERE ISBN = isbn AND 是否借出 = '否';
IF tmp <> 0 THEN
INSERT INTO 预约(预约流水号,借书证号,ISBN,预约时间) VALUES(yy_id,s_id,isbn,to_date(nowdate,'yyyy-mm-dd'));
dbms_output.put_line('成功');
ELSE dbms_output.put_line('该书目有可借图书,请查找');
END IF;
COMMIT;
END;


3、建立存储过程完成图书管理系统中的还书功能。

还书时要求输入借书证号,图书编号,罚款分类号(即该存储过程有3个输入参数)。

还书日期为系统时间。

图书的是否借出改为‘否’。

CREATE OR REPLACE PROCEDURE backbook(s_id integer,book_id varchar2,p_id integer)
AS nowdate varchar2(12);
--定义一个变量来储存日期
BEGIN SELECT to_char(sysdate,'yyyy-mm-dd') INTO nowdate FROM dual;
--获取系统时间
UPDATE 借阅 SET 归还日期 = to_date(nowdate,'yyyy-mm-dd'),罚款分类号 = p_id WHERE 借书证号 = s_id AND 图书编号 = book_id;
--添加归还日期
--UPDATE 借阅 SET 罚款分类号 = p_id WHERE 借书证号 = s_id AND 图书编号 = book_id;
--添加罚款分类 UPDATE 图书 SET 是否借出 = '否' WHERE 图书编号 = book_id;
--修改图书状态
COMMIT;
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐