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

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

案例難度太低,,改良后代碼

--從工資最低的員工開始,給員工漲10%的工資,但工資總額不能超過5W元,并輸出工資總額與漲工資員工人數

declare

??--定義光標
??cursor?cemp?is?select?empno,sal?from?emp?order?by?sal;
??pempno?emp.empno%type;??--員工工號
??psal?emp.sal%type;??--員工工資
?
???--漲工資員工人數
??pnum?number?:=0;?
??--當前工資總額
??psumsal?number;?
??
??begin
??--當前工資總額
??select?sum(sal)?into?psumsal?from?emp;
??
??--打開光標
??open?cemp;
??
??loop?
??
????--取出一條數據
????fetch?cemp?into?pempno,psal;
????--結束條件:cemp已空?或?工資總額(當前工資總額+當前需漲金額)超過5W
????exit?when?cemp%notfound?or?(psumsal+?psal*0.1)>50000;
????
????--更新數據庫,漲10%工資
????update?emp?set?sal=sal*1.1?where?empno=pempno;
????
????--更新漲工資員工人數
????pnum?:=?pnum+1;
????--更新當前工資總額
????psumsal?:=?psumsal+psal*0.1;
????
??end?loop;
??
??--關閉光標
??close?cemp;
??
??--提交更改
??commit;
??
??--輸出結果
??dbms_output.put_line('工資總額:'||psumsal);
??dbms_output.put_line('漲工資員工人數:'||pnum);
??
??end;
/


正在回答

7 回答

看錯了,哈哈,fetch看成下面了,樓主這個最優

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

推出條件還是要分開寫,exit when cemp%notfound;還是要寫在fetch后

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

你這么寫就會出現15個人

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

把那個exit when 的條件改為樓主所給出的條件,就可以實現想要的結果了

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

exit when (salTotal + psal*0.1) > 50000;

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

exit when (salTotal + psal*1.1) > 50000;

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

請問這樣設計之后,結果應該還是會超過5W吧?

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

舉報

0/150
提交
取消

案例難度太低,,改良后代碼

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

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

幫助反饋 APP下載

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

公眾號

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