1 / 11
文档名称:

数据库原理实验三.doc

格式:doc   大小:121KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库原理实验三.doc

上传人:相惜 2021/10/23 文件大小:121 KB

下载得到文件列表

数据库原理实验三.doc

文档介绍

文档介绍:页脚下载后可删除,如有侵权请告知删除!
数据库原理及应用实验报告
实验名称:存储过程
实验类型:验证型
实验环境:oracle 11g
指导教师:陈 骏
专业班级:信安1505班
姓 名:
学 号:512021 联系 : 电子邮件:
实验地点:东6E501
实 验 日 期:  2021年5月10日
实验报告日期:2021年 5月 11日
成绩:__________________________
页脚下载后可删除,如有侵权请告知删除!
一、实验目的
〔1〕了解存储过程的概念、优点
〔2〕熟练掌握创立存储过程的创立方法
〔3〕熟练掌握存储过程的调用方法
实验平台
Oracle 11g
实验步骤、出现的问题及解决方案〔不能解决的将问题列出〕
实验步骤
1〕建立存储过程完成图书管理系统中的借书功能。
功能要求:
借书时要求输入借阅流水号,借书证号,图书编号。〔即该存储过程有3个输入参数〕
借书时,借书日期为系统时间。
图书的是否借出改为‘是’
2〕建立存储过程完成图书管理系统中的预约功能。
预约时要求输入预约流水号,借书证号,ISBN。〔即该存储过程有3个输入参数〕
存储过程先检查输入的ISBN版本的图书是否都已借出,如果是那么进展预约,否那么提示“该书目有可借图书,请查找〞。
预约时间为系统时间。
页脚下载后可删除,如有侵权请告知删除!
3〕建立存储过程完成图书管理系统中的还书功能。
还书时要求输入借书证号,图书编号,罚款分类号〔即该存储过程有3个输入参数〕。
还书日期为系统时间。
图书的是否借出改为‘否’。
问题及解决方案
1)问题一:步骤一无法执行
原因:已创立的table中无“借书〞项
解决方案:将原代码中的“借书〞改为“借阅〞
问题二:步骤二中出现无法识别的符号
原因:将英文分号误写为中文分号
页脚下载后可删除,如有侵权请告知删除!
解决方案:修正为英文分号“;〞
思考与总结
书写存储语句时,应注意涉及的表格和属性名应与创立表格时一样
注意区分中英文符号,防止出现符号无法识别以及程序没有结尾等错误
注意空格的使用,防止出现缺少或多余的空格,造成语法错误
附:实验完整源代码
1、CREATE OR REPLACE PROCEDURE PRO_借书功能
(VAL_借阅流水号 IN %TYPE,
VAL_借书证号 IN %TYPE,
VAL_图书编号 IN %TYPE)
AS
BEGIN
INSERT INTO 借阅(借阅流水号,借书证号,图书编号,借书日期)
VALUES (VAL_借阅流水号,VAL_借书证号,VAL_图书编号,TO_CHAR(SYSDATE(),'YYYY/MM/DD') );
UPDATE 图书 SET 是否借出='是' WHERE =VAL_图书编号;
(' 本次借书操作完成! ');
END;
2、CREATE OR REPLACE PROCEDURE PRO_预约功能
(Y_预约流水号 IN %TYPE,
Y_借书证号 IN %TYPE,
Y_ISBN IN %TYPE)
AS
Y_NUMBER BINARY_INTEGER;
BEGIN
SELECT COUNT(*) INTO Y_NUMBER FROM 图书 WHERE =Y_ISBN AND ='否';
IF Y_NUMBER=0
THEN
INSERT INTO 预约(预约流水号,借书证号,ISBN,预约时间)
VALUES(Y_预约流水号,Y_借书证号,Y_ISBN,TO_CHAR(SYSDATE(),'YYYY/MM/DD')) ;
DBMS_O