收藏 分享(赏)

Oracle存储过程和触发器基本操作.doc

上传人:kpmy5893 文档编号:7653512 上传时间:2019-05-23 格式:DOC 页数:15 大小:947KB
下载 相关 举报
Oracle存储过程和触发器基本操作.doc_第1页
第1页 / 共15页
Oracle存储过程和触发器基本操作.doc_第2页
第2页 / 共15页
Oracle存储过程和触发器基本操作.doc_第3页
第3页 / 共15页
Oracle存储过程和触发器基本操作.doc_第4页
第4页 / 共15页
Oracle存储过程和触发器基本操作.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、南华大学计 算 机 科 学 与 技 术 学 院实 验 报 告 ( 20122013 学年度 第二学期 )课程名称 Oracle 高级数据库开发设计实验名称 存储过程与触发器基本操作姓名 学号专业 班级地点 教师前提表脚本:create table S_RZ0122 (Sno varchar2(11) primary key,Sname varchar2(20) not null,Ssex varchar(2) not null ,Sage number(2) not null,Sdept varchar(20) not null)create table C_RZ0122(Cno varcha

2、r2(20) primary key,Cname varchar2(20) not null ,Ccredit number(2) not null)create table SC_RZ0122(Sno varchar2(11) not null,Cno varchar2(20) not null,Score number(3) ,primary key(Sno ,Cno),foreign key(Sno) references S_RZ0122(Sno),foreign key(Cno) references C_RZ0122(Cno)INSERT INTO S_RZ0122 (Sno ,S

3、name,Ssex,Sage ,Sdept) VALUES(0811101,李勇,男,21,计算机系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0811102,刘晨,男,20,计算机系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0811103,王敏,女,20,计算机系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0811104,张小红,女,19,计算机系)INSERT INTO

4、 S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0821101,张立,男,20,信息管理系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0821102,吴宾,女,19,信息管理系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0821103,张海,男,20,信息管理系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0831101,钱小平,女

5、,21,通信工程系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0831102,王大力,男,20,通信工程系)INSERT INTO S_RZ0122 (Sno ,Sname,Ssex,Sage ,Sdept) VALUES(0831103,张珊珊,女,19,通信工程系)-增加课程信息脚本:-insert allINSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C001,高等数学,4)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit )

6、 VALUES (C002,大学英语,3)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C003,大学英语,3)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C004,计算机文化学,2)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C005,VB,2)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C006,数据库基础,4)INSERT INTO C_RZ0122 (

7、Cno ,Cname ,Ccredit ) VALUES (C007,数据结构,4)INSERT INTO C_RZ0122 (Cno ,Cname ,Ccredit ) VALUES (C008,计算机网络,4)select * from C_RZ0122;-增加关联学生和课程信息脚本:-INSERT ALLINSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811101,C001,96)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811101,C002,80)INSERT INTO SC_RZ0122(

8、Sno,Cno,Score) VALUES (0811101,C003,84)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811101,C005,62)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811102,C001,92)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811102,C002,90)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0811102,C004,84)INSERT INTO SC_RZ

9、0122(Sno,Cno,Score) VALUES (0821102,C001,76)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0821102,C004,85)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0821102,C005,73)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0821102,C007,0)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0821103,C001,50)INSERT INTO S

10、C_RZ0122(Sno,Cno,Score) VALUES (0821103,C004,80)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0831101,C001,50)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0831101,C004,80)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0831102,C007,0)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0831103,C004,78)INSERT IN

11、TO SC_RZ0122(Sno,Cno,Score) VALUES (0831103,C005,65)INSERT INTO SC_RZ0122(Sno,Cno,Score) VALUES (0831103,C007,0)select Sno,Cno,Score from SC_RZ0122;一 实验题目 存储过程与触发器基本操作 二 实验要求 掌握对存储过程和触发器的创建、修改等基本操作。3 实验步骤及过程 根据实验 3 创建的数据库及表,完成以下内容: (1) 在 JXGL 数据库中创建一存储过程并运行,从 S 表中查询所有女生的信息。 创建存储过程 prWoman执行存储过程 prWo

12、man(2) 在 JXGL 数据库中创建一存储过程并运行,从 S 表中根据学号查询并返回该学生的姓名和年龄。 创建存储过程执行存储过程(3) 在 JXGL 数据库中创建一触发器,保证 S 表中学生的年龄在 8-45 岁之间。 触发器说明:(触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。 )首次创建出错:错误在下面,因为 SYS 用户所属的表中不能创建触发器,所以先复制了一份表到 SYSTEM 用户中,再创建触发器测试:(4) 在 JXGL 数据库中创建一触发器,当有学生选了某门课时,不

13、能从 C 表中删除 同样的,先复制 C 课程表再复制学生选课表:创建触发器:测试:成功该课程。 4 实验总结整个实验做下来困难重重啊!因为这些平时使用的不是很多,所以用起来很生疏,特别是触发器的使用的更少,这还是从头开始学了。Oracle 也挺烦的,这么麻烦。以下是遇见的部分错误与感受,重要的都记下了,方便以后查看。1、创建存储过程出错用 show error 语句查看错误信息:2、执行存储过程时报错:查看当时创建存储过程的是输出顺序和选择顺序便知道了,Sage 和Ssex 反了改了后执行,也不是,再百度。 。 。其实原因是 oracle 不能直接这样显示多行数据,必须返回一个数据集,则改变语句后:3、创建触发器报错:解决办法:再复制一份表到其他的用户下面,比如 system后来就可以了。 。 。4、创建触发器 2:报错不能有子查询解决办法:统计 SC 学生选课表中该门课程的选课数目,如果选课数目大于 0 说明有学生选了,则不能删除于是新问题来了,看样子要把学生选课表也复制进来?结果成了,真想去屎, , ,这说明触发器创建的时候也不能穿透用户关系啊!别人平时查询加上用户名前缀就行。 。 。真想说,这错误截图要超过实验内容了,这说明了什么。 。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报