Brother,
Simulei a situação abaixo, criando um TRIGGER na tabela EMP, do Scott, para que você tenha como exemplo.
Eu criei uma SEQUENCE, que será incrementada dentro da TRIGGER da tua tabela e, com isso, você não precisa passar o valor do empno no teu INSERT, pois o TRIGGER irá fazer isso por você.
Selecionar tudo
-- 1) Criar sequence
CREATE SEQUENCE SEQ_EMP_EMPNO
START WITH 1
INCREMENT BY 1;
--2) Criar trigger na Tabela
CREATE OR REPLACE TRIGGER TR_EMP_01
BEFORE
INSERT
ON EMP
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
vSeq PLS_INTEGER;
BEGIN
SELECT SEQ_EMP_EMPNO.NEXTVAL
INTO vSeq
FROM dual;
:new.empno:= vSeq;
EXCEPTION
WHEN OTHERS THEN
RAISE_application_error(-20100,'Erro na Trigger Empno:'||SQLERRM);
END;
/
Nota importante: Supondo que na tua tabela, a numeração esteja em 1000, você deve, obrigatoriamente, iniciar sua SEQUENCE com 1001.
Qualquer coisa manda pra gente.