
数据库的问题 请大家帮帮忙 帮我给下面的pl sql加上注释 每一行都要 谢谢
setserveroutputoncreatetablemsg(raisenumnumber(6),sumsalnumber);declarecursorclissele...
set serveroutput on
create table msg(raisenum number(6),sumsal number);
declare
cursor cl is select empno,sal from emp
order by sal for update of sal;
emp_num number:=0;
s_sal number;
e_sal number;
e_eno number(4);
Begin
open cl;
select sum(sal) into s_sal from emp;
while s_sal<500000 loop
fetch cl into e_eno,e_sal;
exit when cl%notfound;
update emp set sal=sal*1.1
where current of cl;
s_sal:=s_sal+e_sal*0.1;
emp_num:=emp_num+1;
end loop;
close cl;
insert into msg values(emp_num,s_sal);
commit;
end; 展开
create table msg(raisenum number(6),sumsal number);
declare
cursor cl is select empno,sal from emp
order by sal for update of sal;
emp_num number:=0;
s_sal number;
e_sal number;
e_eno number(4);
Begin
open cl;
select sum(sal) into s_sal from emp;
while s_sal<500000 loop
fetch cl into e_eno,e_sal;
exit when cl%notfound;
update emp set sal=sal*1.1
where current of cl;
s_sal:=s_sal+e_sal*0.1;
emp_num:=emp_num+1;
end loop;
close cl;
insert into msg values(emp_num,s_sal);
commit;
end; 展开
展开全部
set serveroutput on; //打开服务器的输出显示
create table msg(raisenum number(6),sumsal number); //创建msg表、包含数字类型字段raisenum和sumsal
declare //定义变量关键字,这里是一段匿名块
cursor cl is select empno,sal from emp
order by sal for update of sal; //定义一个游标cl、用来查询修改emp表
emp_num number:=0; //定义数字型变量 emp_num 、并赋初值0
s_sal number;
e_sal number;
e_eno number(4); //定义对应类型变量
Begin //匿名块主体开始
open cl; //打开上面定义的游标cl
select sum(sal) into s_sal from emp; //查询emp表sal的总和、存入s_sal变量
while s_sal<500000 loop //当s_sal(就是上面求出的sal总和)的值小于500000时,开始循环
fetch cl into e_eno,e_sal; //提取游标cl的数据、存入变量e_eno、e_sal
exit when cl%notfound; //提取完退出
update emp set sal=sal*1.1
where current of cl;
//修改emp表条件为游标里sal的字段值为原值的1.1倍
s_sal:=s_sal+e_sal*0.1; // 设置s_sal的值为s_sal和十分之一e_sql值的和
emp_num:=emp_num+1; //设置emp_num的值+1
end loop; //退出循环
close cl; //关闭游标
insert into msg values(emp_num,s_sal); //msg表插入数据、值为emp_num,s_sal的值
commit; //提交操作
end; //结束匿名块
create table msg(raisenum number(6),sumsal number); //创建msg表、包含数字类型字段raisenum和sumsal
declare //定义变量关键字,这里是一段匿名块
cursor cl is select empno,sal from emp
order by sal for update of sal; //定义一个游标cl、用来查询修改emp表
emp_num number:=0; //定义数字型变量 emp_num 、并赋初值0
s_sal number;
e_sal number;
e_eno number(4); //定义对应类型变量
Begin //匿名块主体开始
open cl; //打开上面定义的游标cl
select sum(sal) into s_sal from emp; //查询emp表sal的总和、存入s_sal变量
while s_sal<500000 loop //当s_sal(就是上面求出的sal总和)的值小于500000时,开始循环
fetch cl into e_eno,e_sal; //提取游标cl的数据、存入变量e_eno、e_sal
exit when cl%notfound; //提取完退出
update emp set sal=sal*1.1
where current of cl;
//修改emp表条件为游标里sal的字段值为原值的1.1倍
s_sal:=s_sal+e_sal*0.1; // 设置s_sal的值为s_sal和十分之一e_sql值的和
emp_num:=emp_num+1; //设置emp_num的值+1
end loop; //退出循环
close cl; //关闭游标
insert into msg values(emp_num,s_sal); //msg表插入数据、值为emp_num,s_sal的值
commit; //提交操作
end; //结束匿名块
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询