oracle plsql 开发 存储过程练习题


立即下载 庸人自扰
2024-03-23
员工 var v char2 提示 修改 薪水 职位 过程 int
21.6 KB

oracle plsql开发:存储过程综合练习
OracleSQL
--基于表emp和dept
--构造Procedure change_salary
--参数:ename in varchar2
salary in number
v_job out varchar2
v_dname out varchar2
--先查找指定员工,如果查出多条记录,提示并异常退出;如果没有该名员工,提示并异常退出。
--如果非上述情况,先判断该名员工的职位,如果职位不是'MANAGER',且要修改的薪水大于8000,拒绝修改并提示:“普通员工不能赚这么多薪水”。
--否则修改该名员工的薪水,
--输出参数:该职员的职位,和所在部门的名字,并打印输出。

--构造上述过程,并写出在SQL Editor中的调试代码(给出调用方式)

我自己写的过程:
create or replace procedure change_salary(v_ename in emp.ename%type,
v_salary in emp.sal%type,
v_job out varchar2,
v_dname out varchar2)
is
v_ecount int default 0;
r_emp emp%rowtype;
too_many_salary exception;
begin
select count(1) into v_ecount from emp where emp.ename=v_ename;
if v_ecount=0 then
raise NO_DATA_FOUND;
elsif v_ecount>1 then
raise TOO_MANY_ROWS;
else
begin
s


员工/var/v_ecount/char2/提示/修改/薪水/职位/过程/int/ 员工/var/v_ecount/char2/提示/修改/薪水/职位/过程/int/
-1 条回复
登录 后才能参与评论
-->