CREATE OR REPLACE PROCEDURE INSERE_LISTA_ERROS(P_CDFILIAL IN VARCHAR2,
                                               P_MENSAGEM IN VARCHAR2,
                                               P_CDOPERADOR IN VARCHAR2,
                                               P_NRORG IN NUMBER,
                                               P_NRLISTAERROS IN OUT NUMBER,
                                               P_NRORDEM IN NUMBER DEFAULT NULL,
                                               P_CDCHAVE IN VARCHAR2 DEFAULT NULL,
                                               P_NMCHAVE IN VARCHAR2 DEFAULT NULL)
AS
  PRAGMA AUTONOMOUS_TRANSACTION;
  V_SEQ VARCHAR2(20);
BEGIN
  IF P_MENSAGEM IS NOT NULL THEN
     IF P_NRLISTAERROS IS NULL THEN
        NOVO_CODIGO_NT('LISTAERROS'|| P_CDFILIAL, V_SEQ);
        P_NRLISTAERROS := TO_NUMBER(V_SEQ);
     END IF;
     INSERT INTO LISTAERROS
     (CDFILIAL, NRLISTA, DSERRO, NRORDEM,
      CDCHAVE, NMCHAVE,
      NRORG, NRORGINCLUSAO, NRORGULTATU,
      CDOPERINCLUSAO, CDOPERULTATU,
      DTINCLUSAO, DTULTATU)
     VALUES
     (P_CDFILIAL, P_NRLISTAERROS, P_MENSAGEM, P_NRORDEM,
      P_CDCHAVE, P_NMCHAVE,
      P_NRORG, P_NRORG, P_NRORG,
      P_CDOPERADOR, P_CDOPERADOR,
      SYSDATE, SYSDATE);
  END IF;

  COMMIT;
END;
/


-- VERSAO --
BEGIN ATUVEROBJ('INSERE_LISTA_ERROS','6.35.009'); END;
/
