Error I am getting: enter image description here
The error is thrown on 'insert' statements in the procedure. The target table has the same number of columns and datatype, as in the insert statement.
My procedure is:
create or replace procedure updatetax
is
date_30 date:=sysdate-(365*30);
date_50 date:=sysdate-(365*50);
/*employees less than 30 years of age*/
cursor c1 is
select eid
from employee
where dateofbirth>date_30
and enddate is null;
/*employees between the age of 30 and 50*/
cursor c2 is
select eid
from employee
where dateofbirth between date_50 and date_30;
/*employees greater than 50 years of age*/
cursor c3 is
select eid
from employee
where dateofbirth<date_50;
r1 employee.eid%type;
r2 employee.eid%type;
r3 employee.eid%type;
begin
open c1;
for r1 in c1
loop
insert into emptax
values(r1.eid,gettaxlessthan30(select salary from empsalary where eid=r1.eid),sysdate);
end loop;
close c1;
commit;
open c2;
for r2 in c2
loop
insert into emptax
values(r2.eid,gettaxbetween30and50(select salary from empsalary where eid=r2.eid),sysdate);
end loop;
commit;
open c3;
close c2;
for r3 in c3
loop
insert into emptax
values(r3.eid,gettaxgreaterthan50(select salary from empsalary where eid=r3.eid),sysdate);
end loop;
commit;
close c3;
end;
/
The functions called in the stored procedure are of the below logic:
create or replace function gettaxlessthan30(esalary_in number)
return number
is
tax_out number(10,2);
begin
tax_out:=0.07*esalary_in;
return tax_out;
end;
/
Resolved - rewrote the procedure again from start and it worked just fine.