PL/SQL程序基础1
一.实验目标
掌握PL/SQL程序的基本结构编程,具备如下能力:
1、针对数据库应用领域的数据需求,设计出基于Oracle数据库的解决方案的能力;
2、承担Oracle数据库系统的实施、运行与维护等基本工作的能力。
二.实验项目
编写存储过程或存储函数完成以下各题,存储过程或函数依次命名为obj2_1、obj2_2、…
以下1-7题与EMP、DEPT表有关。
如果没有上述基本表,可以用下述SQL语句创建:
create table COUNTRIES as select * from univ.COUNTRIES;
create table DEPT as select * from univ.DEPT;
create table EMP as select * from univ.EMP;
1、输出名为SMITH的雇员的工资和职位。(存储过程)
create or replace procedure obj2_1 as
vsal emp.sal%type; vjob emp.job%type;
begin
select sal,job into vsal, vjob from emp
where ename='SMITH';
dbms_output.put_line(vsal ||','|| vjob);
end;
.
/
set serveroutput on;
exec obj2_1;
2、传送参数部门编号,输出该部门名和地理位置。(存储过程)
create or replace procedure obj2_2(z_deptno dept.deptno%type)
as z_dname dept.dname%type;
z_loc dept.loc%type;
begin
select dname,loc
into z_dname,z_loc
from dept
where deptno=z_deptno;
dbms_output.put_line(z_dname||' '||z_loc);
end;
.
/
exec obj2_2(30)
3、传送参数雇员号,输出该雇员的工资和提成,没有提成的用0替代。(用%type实现)。(存储过程)
create or replace procedure obj2_3(v_empno emp.empno%type)
as v_sal emp.empno%type;
v_comm emp.comm%type;
begin
select sal,nvl(comm,0)
into v_sal,v_comm
from emp
where empno=v_empno;
dbms_output.put_line(v_sal||' '||v_comm);
end;
.
/
set serveroutput on;
exec obj2_3(7369)
4、传送参数雇员号,输出该雇员的所有信息,没有提成的用0替代。(用%rowtype实现)。(存储过程)
create or replace procedure obj2_4(vem