Oracle数据库实验8,Oracle数据库系统应用开发实用教程教学课件作者第2版朱亚兴文本文本ch8实验报告课件.doc...

Oracle数据库系统应用开发实用教程教学课件作者第2版朱亚兴文本文本ch8实验报告课件.doc

广东科学技术职业学院

计算机工程技术学院(软件学院)

实 验 报 告

专业 班级 成绩评定______

学号 姓名 (合作者____号____) 教师签名

实验 题目 存储过程、函数、程序包和触发器 第 周 星期 第 节

实验目的与要求

1.掌握编写存储过程和调用过程的方法

2.掌握编写函数和调用函数的方法

3.掌握程序包的编写规范

4.掌握执行程序包中过程和函数的方法。

5.掌握语句级触发器的原理。

6.语句级触发器的编写方法。

7.测试语句级触发器是否生效。

8.掌握行级触发器的原理。

9.行级触发器的编写方法。

10.测试行级触发器是否生效。

11.掌握替代触发器的原理。

12.创建DDL触发器。

13.替代触发器的测试方法。

14.掌握DDL触发器的原理。

15.创建DDL触发器。

16.DDL触发器的测试方法。

17.掌握数据库级触发器的原理。

18.创建数据库级触发器。

19.数据库级触发器的测试方法。

实验环境及方案

Windows Server 2000 sp1或更高版本;或Windows Server 2003的所有版本;

或Windows XP专业版;

Oracle10g;

Internet 环境及浏览器。

实验步骤

实训8.1 存储过程

目的和要求

掌握编写存储过程和调用过程的方法

实训内容

指导:

编写一个存储过程,要求根据用户输入的员工号(employee_id)查询EMPLOYEES表,返回员工的姓名、工作职位和薪水(first_name, last_name, job_title,salary)。并编写一个匿名块调用此过程。 (使用HR用户的EMPLOYEES表、JOBS表,其中关联字段为EMPLOYEES. JOB_ID和JOBS. JOB_ID。以下同)

(1)编写存储过程

create or replace procedure pro_emp(emp_id number)

as

vfname varchar2(20);

vlname varchar2(20);

vjob varchar2(20);

nsal number;

begin

select e.first_name,e.last_name,j.Job_title,e.salary into vfname,vlname,vjob,nsal from employees e,jobs j where employee_id=emp_id and e.job_id=j.job_id ;

dbms_output.put_line ('雇员的姓名是:'||vfname||' '||vlname);

dbms_output.put_line ('雇员的职位是:'||vjob);

dbms_output.put_line ('雇员的薪水是:'||nsal);

exception

when no_data_found then

dbms_output.put_line ('雇员编号未找到!');

end pro_emp;

(2)调用执行存储过程

exec pro_emp(104);

执行结果为

雇员的姓名是:Bruce Ernst

雇员的职位是:Programmer

雇员的薪水是:6000

练习:

1.编写一个过程,要求根据用户输入的员工号(employee_id)查询EMPLOYEES表,返回员工的工作职位、工作年限、电话和Email。并编写一个匿名块调用此过程。

2.创建一个过程,用来实现九九乘法表。

实训8.2 函数

目的和要求

掌握编写函数和调用函数的方法

实训内容

指导:

编写函数以部门号为参数,并计算该部门的平均工资。

(1)编写函数

create or replace function fun_avgsal(dept_id number)

return float

as

sal_avg float(10);

begin

select avg(salary) into sal_avg from employees where department_id =dept_id;

return sal_avg;

EXCEPTION

when NO_DATA_FOUND then

DBMS_OUTPUT.PUT_LINE('部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值