ORA-00936:missing expression error

270 Views Asked by At

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;
/
1

There are 1 best solutions below

0
On

Resolved - rewrote the procedure again from start and it worked just fine.