create or replace procedure insert_duration (d_code in number,f_date in date,t_date in date) as n_code duration.duration_code%type; begin select nvl(max(duration_code),0) into n_code from duration; n_code := n_code + 1; if n_code = d_code then insert into duration values(d_code , f_date , t_date); commit; else raise_application_error(-20101,'Duration code out of sequence'); end if; end; /