《oracle技术》实验报告(五)
实验名称oracle编程(一)
姓名学号班级。
实验目的(1)熟练掌握编写和调试pl/sql块的方法。(2)熟练掌握编写和调试存储过程方法。(3)熟练掌握编写和调试函数方法。
4)熟练掌握各种控制结构语句的使用。
实验内容(1)编写一个pl/sql块,输出emp表中所有员工的员工名、员工号、工资和部门号。
beginfor v_emp in(select*from emp)loop dbms_
v_end loop;
end;2)创建一个存储过程,以员工号为参数,输出该员工的工资。
提示:如果不存在该员工,则显示“员工号不存在”)
create or replace procedure
output_sal(p_empno
asv_sal
beginselect sal into v_sal from emp where empno=p_empno;
dbms_exception
when no_data_found then
dbms_员工号不存在’);
成绩。end;
3)编写一个pl/sql块,查询名为“smith”的员工信息,并输出其员工号、工资、部门号。如果该员工不存在,则插入一条。
新记录,员工号为2007,员工名为“smith”,工资为1500,部门号为10。如果存在多个名为“smith”的员工,则输出所。
有名为“smith”的员工号、工资和部门号。(提示:要使用。
no_date_found和too_many_rows两个异常。)
declare
v_empno
v_sal
v_deptno
beginselect empno,sal,deptno into
v_empno,v_sal,v_deptno from emp where ename=’smith’;
dbms_ no);
exception
when no_data_found then
insert into emp(empno,ename,sal,deptno) values(2007,’smith’,1500,10);
when too_many_rows then
for v_emp in(select empno,sal,deptno from emp where ename=’smith’)loop
dbms_v_
end loop;
end;4)创建一个存储过程,以部门号为参数,输出该部门入职日期最早的员工姓名。
提示:如果不存在该部门,则显示“无此部门或此部门无员工!”)create or replace procedure cc(p_deptno
asv_ename
beginselect ename into v_ename from emp where deptno=p_deptno
实验内容。and hiredate=(select min(hiredate)from emp where
deptno=p_deptno);
dbms_exception
when no_data_found then
dbms_'无此部门或此部门没有员工!')end;
5)创建一个函数,以员工号为参数,返回该员工的工资。
create or replace function
ret_sal(p_empno
return
asv_sal
beginselect sal into v_sal from emp where empno=p_empno;
return v_sal;
exception
when no_data_found then
return-1;
end;6)编写一个pl/sql块调用(5)中创建的函数。如果不存在该员工,则显示“员工号不存在!”。
命令:declare
v_empno
v_sal
beginv_empno:=&x;
v_sal:=ret_sal(v_empno);
if v_sal=-1then
dbms_员工号不存在’);
elsedbms_
end if;
end;7)创建一个函数,以部门号为参数,返回该部门的平均工资。
create or replace function
ret_**gsal(p_deptno
return
asv_**gsal
beginselect **g(sal)into v_**gsal from emp where deptno=p_deptno;
if v_**gsal is null then
return-1;
elsereturn v_**gsal;
end if;
end;8)编写一个pl/sql块调用(7)中创建的函数。如果不存在该部门,则显示“部门号不存在!”。
declare
v_deptno
v_**gsal
beginv_deptno:=&x;
v_**gsal:=ret_**gsal(v_deptno);
if v_**gsal=-1then
dbms_部门号不存在!’)
else dbms_
end if;
end;9)创建一个函数,以员工号为参数,返回该员工所在部门的平均工资。
create or replace function
ret_**gsal_empno(p_empno
return
asv_deptno
v_**gsal
beginselect deptno into v_deptno from emp
where empno=p_empno;
select **g(sal)into v_**gsal from emp
where deptno=v_deptno;
return v_**gsal;
exception
when no_data_found then
return-1;
end;10)编写一个pl/sql块调用(9)中创建的函数。如果不存在该部门,则显示“员工号不存在!”。
declare
v_empno
beginv_empno:=&x;
v_**gsal:=ret_**gsal_empno(v_empno);
if v_**gsal=-1then
dbms_员工号不存在!’)
elsedbms_
end if;
end;11)创建一个存储过程,以一个整数为参数,输出工资最高的前几个(参数值)员工的姓名。
create or replace procedure max_n(p_n int)
as v_i int:=1;
beginfor v_emp in(select*from emp order by sal desc)loop
dbms_exit when v_i=p_n;
v_i:=v_i+1;
end loop;
end;12)创建一个存储过程,以两个整数为参数,输出工资排序在两个参数之间的员工姓名。
create or replace procedure min_max(p_m int,p_n int) as
v_i int:=1;
beginfor v_emp in(select*from emp where sal between p_m and p_n order by sal)loop
dbms_'
||v_end loop;
end;
Oracle实验四答案
select initcap ename from emp 显示正好为5个字符的员工姓名。select ename from emp where length ename 5 显示不带有r的员工姓名。select from emp where ename not like r 显示所有员工的前三个字...
oracle期末实验含答案
1 数据库的建表语句,我们是必须要掌握的,其中,主外键的定义是一种数据库完整性的规范,我们也要掌握。创建如下两个表 course表 cid number 主键。cname varchar2 create table course cid number primary key,cname varcha...
实验1编程环境 答案
c语言 上机实验一。学号姓名。实验目的 1.熟悉visual c 6.0 简称vc 6.0 的语言集成编译环境 2.掌握c语言程序的上机步骤。实验内容 1.熟悉vc 6.0的编译环境 参考第370页附录a 建议 事先建立一个特定的文件夹,专门用于保存你的c程序。例如,在e盘中新建文件夹 vc pro...