Oracle---作业5过程与函数

戏子无情 提交于 2019-12-05 19:15:14

Homework

1. 创建一个过程,能向dept表中添加一个新记录。(in参数)

2. 从scott.emp表中查询给定职工(提示:使用&来输入员工编号)的职工姓名和工资。(要求:利用out模式的参数将值传给调用者。)

3. 创建一个过程,在执行调用过程时,可随机输入emp表中某个雇员的姓名,根据雇员的姓名,返回该雇员的薪水值,并输出。(out参数)。

4. 编写过程,实现交换两个变量的值的功能。并输出交换前和交换后的两个值。(in out参数)

5. 创建存储过程,根据员工编号删除scott.emp表中的相关记录。(提示:由调用语句提供的员工编号来删除记录,要求员工编号可随机输入。)

6. 创建存储过程:输入部门编号,输出scott.emp表中该部门所有职工的员工编号、姓名、工作岗位。(提示:查询结果是多行,需使用游标,需把游标的定义像变量那样在过程或函数里定义,所以游标的定义要放在如下位置:

 

7. 编写一个过程,指定一个员工编号与一个工资增加的百分比,使emp表中将该员工的工资(sal)增加输入的百分比。

8. 创建函数,从scott.emp表中查询指定员工编号的职工的工资。

9. 创建函数,返回scott.emp表中指定职工的工资和姓名。(提示:返回值是两个,可用return返回一个,另一个用out参数带回)

10. 创建函数,根据给定的部门编号(提示: 利用&)计算该部门所有职工的平均工资。

11. 创建函数,将scott.emp表中工资低于平均工资的职工工资加上200,并返回修改了工资的总人数。

12. 创建一个函数,仅有一个形参,它接收调用函数中传递过来的实参--部门号,函数的返回值为该部门的一整条记录信息(注意:此处能够接收一整条记录的变量该怎么定义?)。要求在调用函数中输出该部门的部门名称与位置。

 1 create or replace function func(deptid in number)
 2     return scott.dept%rowtype is result scott.dept%rowtype;
 3 begin
 4     select * into result from scott.dept where deptno=deptid;
 5     return (result);
 6 end;
 7 /
 8 
 9 set serveroutput on;
10 declare
11     res scott.dept%rowtype;
12 begin
13     res := func(&deptid);
14     dbms_output.put_line(res.deptno || ' ' ||res.dname ||' '|| res.loc);
15 end;
16 /
View Code

 

1.       创建一个过程,能向dept表中添加一个新记录。(in参数)

2. scott.emp表中查询给定职工(提示:使用&来输入员工编号)的职工姓名和工资。(要求:利用out模式的参数将值传给调用者。)

3. 创建一个过程,在执行调用过程时,可随机输入emp表中某个雇员的姓名,根据雇员的姓名,返回该雇员的薪水值,并输出。(out参数)。

4. 编写过程,实现交换两个变量的值的功能。并输出交换前和交换后的两个值。(in out参数)

5. 创建存储过程,根据员工编号删除scott.emp表中的相关记录。(提示:由调用语句提供的员工编号来删除记录,要求员工编号可随机输入。)

6. 创建存储过程:输入部门编号,输出scott.emp表中该部门所有职工的员工编号、姓名、工作岗位。(提示:查询结果是多行,需使用游标,需把游标的定义像变量那样在过程或函数里定义,所以游标的定义要放在如下位置:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!