2017-10-06 2 views
0

エラー。ターゲット表には、挿入文と同じ数の列とデータ型があります。ORA-00936:私は取得しています不足している式のエラー

私の手順です:

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

ストアドプロシージャに呼び出される関数は、以下の論理を示している:解決済み

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

答えて

0

- 最初からもう一度手順を書き直し、それが働きましたちょうど良い。

関連する問題