create or replace function get(p_begin in varchar2,p_end in varchar2) return varchar2 as v_no varchar2(10); begin select max(no) into v_no from table_name where begin=p_begin and end=p_end; return v_no; exception when others then return 0; end; /create or replace trigger name_tri before insert on table_name for each row begin select get(:new.begin,:new.end)+1 into :new.no from dual; end; /
return varchar2
as
v_no varchar2(10);
begin
select max(no) into v_no from table_name where begin=p_begin and end=p_end;
return v_no;
exception
when others then
return 0;
end;
/create or replace trigger name_tri
before insert on table_name
for each row
begin
select get(:new.begin,:new.end)+1 into :new.no from dual;
end;
/