- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库上机-实验3
实验三 PL/SQL编程(2)
目的和要求:
掌握存储过程和函数的使用
掌握游标的使用
掌握程序包的使用
掌握触发器的使用
实验内容:
SCOTT用户拥有DEPT、EMP、SALGRADE表对象,其中,
DEPT是部门信息表,包括:部门编号、部门名称、部门地址三个属性,即DEPT(DEPTNO,DNAME,LOC)。
EMP是员工信息表,包括:员工编号、员工姓名、职位、上级领导、雇用时间、薪金、佣金、所属部门编号八个属性,即EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)。
SALGRADE是工资等级表,包括:工资等级、最低工资、最高工资三个属性,即SALGRADE(GRADE,LOSAL,HISAL)。
编写一个函数来找出职工工资数额的信息,该函数还可以接受职工的号码。
create or replace procedure get_sal(
id_param in scott.emp.empno%type,
sal_param out scott.emp.sal%type)is
begin
select sal
into sal_param
from scott.emp
where empno=id_param;
end get_sal;
//测试
set serverout on
declare
sal scott.emp.sal%type;
begin
get_sal(7369,sal);
dbms_output.put_line(sal);
end;
编写一个函数来找出职工的经理信息,该函数还可以接受职工的姓名。
create or replace procedure get_mgr(
id_param in scott.emp.empno%type,
mgr_param out scott.emp.mgr%type)is
begin
select mgr
into mgr_param
from scott.emp
where empno=id_param;
end get_mgr;
//测试
set serverout on
declare
mgr scott.emp.mgr%type;
begin
get_mgr(7369,mgr);
dbms_output.put_line(mgr);
end;
编写一个函数,该函数可以根据接受职工的号码。来返回ENAME、SAL、DEPTNO信息。
create or replace procedure get_emp_basicInf(
empno_param in scott.emp.empno%type,
empname_param out scott.emp.ename%type,
sal_param out scott.emp.sal%type,
deptno_param out scott.emp.deptno%type
) is
begin
select ename,sal,deptno
into empname_param,sal_param,deptno_param
from scott.emp
where empno=empno_param;
end get_emp_basicInf;
//测试
set serverout on
declare
empno_param number:=7369;
ename_param scott.emp.ename%type;
sal_param scott.emp.sal%type;
deptno_param scott.emp.deptno%type;
begin
get_emp_basicInf(empno_param,ename_param,sal_param,deptno_param);
dbms_output.put_line(empno:||empno_param|| ename:||ename_param|| sal:||sal_param|| deptno:||deptno_param);
end;
编写一个函数,该函数可以根据接受的职工姓名,来确定该职工的年收入信息。如果有两个或以上重名职工的话将出现错误信息。
create or replace function get_yearlySal(ename_param scott.emp.ename%type)
return number is
comm_param number;
文档评论(0)