我是PL/SQL的新手。現在情況一直很好。 我有查詢這個查詢哪些工作正常。創建和調用PL/SQL函數
declare
rec employees_practice%rowtype;
sam taxObligations%rowtype;
socialsecurity number;
rentallowance number;
transportation number;
taxableincome number;
incometaxliability number;
netpay number;
total number;
totaldeductions number;
begin
for rec in (select * from employees_practice)
loop
socialsecurity:=(5.5/100)*(rec.salary);
rentallowance:=(20/100)*(rec.salary);
if(rec.Category='S')
then transportation:= 150;
else transportation:=100;
end if;
taxableincome:=rec.Salary-socialsecurity+rentallowance+transportation;
for sam in (select * from taxObligations)
loop
if(taxableincome between sam.Minincome and sam.Maxincome)
then incometaxliability:= sam.MinimumBracketTax + (taxableincome-sam.Minincome)*(sam.TaxBracketRate/100);
else incometaxliability:=null;
end if;
end loop;
netpay:= taxableincome-incometaxliability;
total:= rec.Salary + rentallowance + transportation;
totaldeductions:=socialsecurity + incometaxliability;
-- Here, I used DBMS.... to give an output in different format.
end loop;
end;
我現在想要創建一個包含上述代碼的函數,因此我可以使用單個SQL或PL/SQL查詢來調用它。這對我來說很頭疼。
我試過了,得到這個錯誤。 錯誤在第0行:PL/SQL:編譯單元分析終止 –
radashk,這正是我一直在嘗試做的。 –