-1
我想寫一個PROCEDURE,它將首先打印僱員的僱員號碼和工資(即7839)。然後,它會增加僱員7839的薪水(這將是在表中僱員僱員號),按照以下條件:轉換爲PROCEDURE pl/sql
Condition-1: If experience is more than 10 years, increase salary by 20%.
Condition-2: If experience is greater than 5 years, increase salary by 10%.
Condition-3: All others will get an increase of 5% in the salary.
程序將之前和之後的增加我試圖在打印員工編號和工資下面的步驟,但不知道它有多準確。
我需要將其轉換爲PROCEDURE代碼。
請指教
DECLARE
veno emp.empno%type:=&veno;
vsal emp.sal%type;
vexp number;
BEGIN
select empno,sal,trunc(to_char(months_between(sysdate,hiredate)/12))into veno,vsal,vexp from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('before update:' ||chr(10)||veno||chr(10)||vsal);
if vexp>=10 then
update emp set sal=sal+(sal*.20) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
elsif vexp>=5 then
update emp set sal=sal+(sal*.10) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
else
update emp set sal=sal+(sal*.05) where empno=veno;
select sal into vsal from emp where empno=veno;
DBMS_OUTPUT.PUT_LINE('after update:' ||chr(10)||vsal);
end if;
END;
/
我的第一個想法是,這個程序將被視爲一個匿名塊,而不是一個程序。過程是一個可以按名稱調用的存儲程序。其次,雖然該計劃並不漂亮,但它似乎可以根據您發佈的要求進行工作。 –
那麼,你是否想從你的代碼中創建過程? – Marusyk
是的,我想創建一個程序出我的代碼..請幫助 – Chaz