亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

修改后的 答案!

/*

SQL語言 ?

select empno,sal from emp order by sal

--> 光標 --> 循環 ?--> 退出條件:1. 總額>5w 2.notfound漲完


變量

漲工資的人數: countEmp number := 0;

漲后的工資總額:salTotal number;

? ? ? ? ? ? ? 1. select sum(sal) into salTotal from emp;

? ? ? ? ? ? ? 2. 漲后=漲前+sal*0.1

? ? ? ? ? ? ??

練習:把程序改對 ? ? ? ? ? ? ?

*/

set serveroutput on

declare

? cursor cemp is select empno,sal from emp order by sal;

? pempno emp.empno%type;

? psal ? emp.sal%type;

? --漲工資的人數:?

? countEmp number := 0;

? --漲后的工資總額:

? salTotal number;

? tal ? ? ?number;

begin

? --得到初始的工資總額

? select sum(sal) into salTotal from emp;

??

? open cemp;

? loop

? ? --1. 總額>5w

? ? exit when salTotal > 50000;

? ? --取一個員工

? ? fetch cemp into pempno,psal;

? ? --2.notfound漲完

? ? exit when cemp%notfound;


? ? ?tal:=salTotal + psal *0.1;?

? ? ?exit when tal>50000; --在漲工資之前判斷一下,漲后是否超過5W

? ?--漲工資

? ? update emp set sal=sal*1.1 where empno=pempno;

??

? ? --人數+1

? ? countEmp := countEmp +1;

? ? --2. 漲后=漲前+sal*0.1

? ? salTotal := salTotal + psal *0.1;

??

? end loop;

? close cemp;


? commit;

? dbms_output.put_line('人數:'||countEmp||' ? 工資總額:'||salTotal);

end;

/











正在回答

3 回答

你覺得加一個在漲工資前的判斷,就可以不出現老師的問題了嗎?答案很顯然是把員工的?信息循環完一遍之后工資依然沒有漲到5w,此時程序就退出了。正確的思路是,讓程序再把所有員工信息循環一遍。你們到底自己試了沒有?

1 回復 有任何疑惑可以回復我~

tal number:=0;

0 回復 有任何疑惑可以回復我~

在update前面加上 exit when (salTotal + psal*1.1) > 50000;

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

修改后的 答案!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號