在plsql 中,根据以下两个问题编写两段代码,怎么编写??非常感谢!!
1、编写一个过程,输入一个员工编号,如果该员工的职位是PRESIDENT,就给他的工资增加1000,如果该员工的职位的事MANAGER就给他的工资增加500,其他职位的员...
1、编写一个过程,输入一个员工编号,
如果该员工的职位是PRESIDENT,就给他的工资增加1000,
如果该员工的职位的事MANAGER就给他的工资增加500,
其他职位的员工工资增加200.
2、先创建两个表,一个是emp_bak1,一个是emp_bak2,表结构和emp完全相同;
然后将emp表中薪资大于平均薪资水平的员工记录插入第一张表emp_bak1中,
将小于平均薪资水平的员工记录插入第二张表emp_bak2中。
必须使用到游标机制。
非常感谢. 展开
如果该员工的职位是PRESIDENT,就给他的工资增加1000,
如果该员工的职位的事MANAGER就给他的工资增加500,
其他职位的员工工资增加200.
2、先创建两个表,一个是emp_bak1,一个是emp_bak2,表结构和emp完全相同;
然后将emp表中薪资大于平均薪资水平的员工记录插入第一张表emp_bak1中,
将小于平均薪资水平的员工记录插入第二张表emp_bak2中。
必须使用到游标机制。
非常感谢. 展开
1个回答
展开全部
1 假设更新emp表
create procedure my_pro is
begin
update emp set sal=
(case
when job='PRESIDENT' then sal+1000
when job='MANAGER' then sal+500
else sal+200
end);
commit;
end;
/
2 create table emp_bak1 as select * from emp where 1=2;
create table emp_bak2 as select * from emp where 1=2;
insert into emp_bak1 select * from emp where sal>(select avg(sal) from emp);
insert into emp_bak2 select * from emp where sal<(select avg(sal) from emp);
一定要用游标的话
declare
avgsal number;
cursor emp_cur is select avg(sal) a from emp;
begin
open emp_cur;
fetch emp_cur into avgsal ;
insert into emp_bak1 select * from emp where sal>avgsal;
insert into emp_bak2 select * from emp where sal<avgsal;
commit;
close emp_cur;
end;
/
create procedure my_pro is
begin
update emp set sal=
(case
when job='PRESIDENT' then sal+1000
when job='MANAGER' then sal+500
else sal+200
end);
commit;
end;
/
2 create table emp_bak1 as select * from emp where 1=2;
create table emp_bak2 as select * from emp where 1=2;
insert into emp_bak1 select * from emp where sal>(select avg(sal) from emp);
insert into emp_bak2 select * from emp where sal<(select avg(sal) from emp);
一定要用游标的话
declare
avgsal number;
cursor emp_cur is select avg(sal) a from emp;
begin
open emp_cur;
fetch emp_cur into avgsal ;
insert into emp_bak1 select * from emp where sal>avgsal;
insert into emp_bak2 select * from emp where sal<avgsal;
commit;
close emp_cur;
end;
/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询