Pular para o conteúdo

Fóruns Banco de dados Oracle 01722. 00000 – “invalid number” 01722. 00000 – “invalid number”

#104737
Gustavo S Coelho
Participante

    Pessoal,

    Fiz a alteração do script forçando a conversão dos dados ao setar no cursor e deixei a rotina executando ontem ao final do dia, ao chegar hoje de manhã o script foi interrompido com o seguinte erro:

    Exceção de E/S: Software caused connection abort: recv failed

    É possível que alguém tenha interrompido o processo ou ultrapassou alguma configuração no Oralce quanto a limite de execução transação após um período em execução?

    Estou executando o script no Oracle SQL Developer.

    Segue o script alterado:

    DECLARE

    CURSOR C_CARGA_CONHECIMENTO IS
    SELECT
    TO_NUMBER(NUMEROCONHECIMENTO) AS NUMEROCONHECIMENTO,
    TO_NUMBER(NUMEROPROGRAMACAO) AS NUMEROPROGRAMACAO,
    TO_NUMBER(VALORMERCADORIAS) AS VALORMERCADORIAS,
    TO_CHAR(NATUREZA) AS NATUREZA,
    TO_NUMBER(QTD_VOLUME) AS QTD_VOLUME,
    TO_CHAR(ESPECIE) AS ESPECIE,
    TO_NUMBER(PESO_KG) AS PESO_KG, -- É VARCHAR2 EM CONFRETE
    TO_NUMBER(PESO_CUBADO) AS PESO_CUBADO, -- É VARCHAR2 EM CONFRETE
    TO_NUMBER(STATUS) AS STATUS, -- É VARCHAR2 EM CONFRETE
    TO_NUMBER(COSO_ID) AS COSO_ID,
    TO_NUMBER(NVL(FRETEVALOR, 0)) AS FRETEVALOR,
    TO_NUMBER(FILIALVENDA) AS FILIALVENDA,
    TO_NUMBER(COCR_ID) AS COCR_ID,
    -- 'N', --FLG_AVULSO SETADO DE FORMA FIXA
    --TO_NUMBER(NVL(W_VEICULO_ID,0)), --NÃO PRECISA POIS É --NVLW_VEICULO_ID,0, --NÃO PRECISA POIS É CAPTURADO POSTERIORMENTE
    TO_NUMBER(TRANSP.ID) IDTRANSPORTADORA, --ADICIONADO O JOIN COM TRNSP
    -- 1, SETADO DE FORMA FIXA
    TO_NUMBER(ALIQUOTA) AS ALIQUOTA,
    TO_NUMBER(ICMSFRETE) AS ICMSFRETE,
    TO_NUMBER(BASECALCULOFRETE) AS BASECALCULOFRETE,
    TO_CHAR(CODIGOCONTABIL) AS CODIGOCONTABIL,
    TO_CHAR(LOCALEMISSAO) AS LOCALEMISSAO,
    TO_CHAR(LOCALENTREGA) AS LOCALENTREGA,
    TO_CHAR(MENSAGEM) AS MENSAGEM,
    TO_CHAR(MENSAGEM2) AS MENSAGEM2,
    TO_CHAR(CIFFOB) AS CIFFOB,
    TO_CHAR(FLG_IMPRIMIR) AS FLG_IMPRIMIR,
    --CIDA_CODIGO_ORIGEM, NÃO PRECISA POIS É CAPTURADO POSTERIORMENTE
    --CIDA_CODIGO_DESTINO NÃO PRECISA POIS É CAPTURADO POSTERIORMENTE
    TO_CHAR(PLACAVEICULO) AS PLACAVEICULO, -- É NECESSÁRIO PARA MONTAR O CURSOR C_DADOS_VEICULO
    TO_CHAR(MUNICIPIODESTINATARIO) AS MUNICIPIODESTINATARIO, -- -- É NECESSÁRIO PARA MONTAR O CURSOR C_KM_IND
    TO_CHAR(NOTAFISCAL1) AS NOTAFISCAL1,
    TO_CHAR(NOTAFISCAL2) AS NOTAFISCAL2,
    TO_CHAR(NOTAFISCAL3) AS NOTAFISCAL3,
    TO_CHAR(NOTAFISCAL4) AS NOTAFISCAL4,
    TO_CHAR(NOTAFISCAL5) AS NOTAFISCAL5,
    TO_CHAR(NOTAFISCAL6) AS NOTAFISCAL6,
    TO_CHAR(NOTAFISCAL7) AS NOTAFISCAL7,
    TO_CHAR(NOTAFISCAL8) AS NOTAFISCAL8,
    TO_CHAR(NOTAFISCAL9) AS NOTAFISCAL9,
    TO_CHAR(NOTAFISCAL10) AS NOTAFISCAL10,
    TO_CHAR(NOTAFISCAL11) AS NOTAFISCAL11,
    TO_CHAR(NOTAFISCAL12) AS NOTAFISCAL12,
    TO_CHAR(NOTAFISCAL13) AS NOTAFISCAL13,
    TO_CHAR(NOTAFISCAL14) AS NOTAFISCAL14,
    TO_CHAR(NOTAFISCAL15) AS NOTAFISCAL15,
    TO_CHAR(NOTAFISCAL16) AS NOTAFISCAL16,
    TO_CHAR(NOTAFISCAL17) AS NOTAFISCAL17,
    TO_CHAR(NOTAFISCAL18) AS NOTAFISCAL18,
    TO_CHAR(NOTAFISCAL19) AS NOTAFISCAL19,
    TO_CHAR(NOTAFISCAL20) AS NOTAFISCAL20,
    TO_CHAR(NOTAFISCAL21) AS NOTAFISCAL21,
    TO_CHAR(NOTAFISCAL22) AS NOTAFISCAL22,
    TO_CHAR(NOTAFISCAL23) AS NOTAFISCAL23,
    TO_CHAR(NOTAFISCAL24) AS NOTAFISCAL24,
    TO_CHAR(NOTAFISCAL25) AS NOTAFISCAL25

    FROM CONFRETE.CONHECIMENTO CON, TRANSP.TRANSPORTADORAS TRANSP
    WHERE CON.NUMEROCONHECIMENTO IS NOT NULL;
    -- A partir de uma faixa: and CON.NUMEROCONHECIMENTO >= 501077 and CON.NUMEROCONHECIMENTO <= 501079;

    CURSOR C_DADOS_VEICULO(P_PLACA VARCHAR2) IS
    SELECT VEIC.ID AS VEIC_ID,
    DECODE(veic.flg_emite_conhecimento, 'S', 112, TRAN.ID) AS TRAN_ID
    FROM TRANSP.VEICULOS VEIC INNER JOIN TRANSP.TRANSPORTADORAS TRAN
    ON VEIC.TRAN_ID = TRAN.ID
    WHERE PLACA = P_PLACA;

    CURSOR C_NOTAS IS
    SELECT NOTAS
    FROM FRETE.TMP_SPLIT_NOTAS
    WHERE NOTAS IS NOT NULL;

    CURSOR C_KM_IND(P_CIDADE_DESTINATARIO VARCHAR2) IS
    SELECT
    CODIGO CIDA_CODIGO_DESTINO
    FROM
    PEDI.CIDADES
    WHERE
    UPPER(NOME) = UPPER(P_CIDADE_DESTINATARIO);

    --select * FROM table(FC_SPLIT_NOTAS('a,b,c')) NFFS

    W_TABLE_SPLIT split_tbl;

    W_VEICULO_ID TRANSP.VEICULOS.ID%TYPE;
    W_TRANSPORTADORA_ID TRANSP.TRANSPORTADORAS.ID%TYPE;
    W_COD_SOLICITACAO FRETE.CONHECIMENTOS_SOLICITACOES.ID%TYPE;
    W_CIDA_CODIGO_ORIGEM FRETE.CONHECIMENTO.CIDA_CODIGO_ORIGEM%TYPE;
    W_CIDA_CODIGO_DESTINO FRETE.CONHECIMENTO.CIDA_CODIGO_DESTINO%TYPE;

    W_NUM_CONHECIMENTO FRETE.CONHECIMENTO.NUM_CONHECIMENTO%TYPE;
    W_SERIE_NOTA VARCHAR2(3);
    W_NUMERO_NOTA VARCHAR2(8);

    W_NFFS VARCHAR2(11);
    W_COUNT NUMBER;
    W_NUM_PROGRAM_AUX NUMBER;
    P_DATA_LOG DATE;

    NFFS VARCHAR2(32767);

    BEGIN

    DELETE FROM FRETE.conhecimentos_solicitacoes;

    INSERT INTO FRETE.conhecimentos_solicitacoes
    SELECT * FROM CONFRETE.conhecimentos_solicitacoes;

    DELETE FROM FRETE.conhecimentos_notas;

    INSERT INTO FRETE.conhecimentos_notas
    SELECT * FROM CONFRETE.conhecimentos_notas;

    DELETE FROM FRETE.NOTAS_FISCAIS_CONHECIMENTOS;

    DELETE FROM FRETE.conhecimento;

    DELETE FROM FRETE.conhecimentos_capas_respostas;

    INSERT INTO FRETE.conhecimentos_capas_respostas
    SELECT * FROM CONFRETE.conhecimentos_capas_respostas;

    -- LAURO DE FREITAS
    W_CIDA_CODIGO_ORIGEM := 7102;
    P_DATA_LOG := SYSDATE;

    FOR R_CARGA_CONHECIMENTO IN C_CARGA_CONHECIMENTO LOOP

    OPEN C_DADOS_VEICULO(R_CARGA_CONHECIMENTO.PLACAVEICULO);
    FETCH C_DADOS_VEICULO INTO W_VEICULO_ID, W_TRANSPORTADORA_ID;
    
      IF C_DADOS_VEICULO%NOTFOUND THEN
        -- GRAVAR EM UMA TABELA DE LOG
    

    -- RAISE_APPLICATION_ERROR(-20002, 'VEICULO DE PLACA '|| R_CARGA_CONHECIMENTO.PLACAVEICULO||' NÃO ENCONTRADO'||' ERRO: '||SQLERRM);
    W_VEICULO_ID := NULL;
    W_TRANSPORTADORA_ID := NULL;

      END IF;
    
    CLOSE C_DADOS_VEICULO;     
    
    IF R_CARGA_CONHECIMENTO.IDTRANSPORTADORA IS NOT NULL THEN
    
      OPEN C_KM_IND(R_CARGA_CONHECIMENTO.IDTRANSPORTADORA);
      FETCH C_KM_IND INTO W_CIDA_CODIGO_DESTINO;
    
      IF C_KM_IND%NOTFOUND THEN
      -- GRAVAR LOG NA NOVA TABELA DE LOG
        INSERT INTO LOG_PROCESSAMENTO(DATA, DESCRICAO, TP_PROCESSAMENTO)
        VALUES(P_DATA_LOG, 'ATENÇÃO !!...TRANSPORTADORA NÃO INFORMADA ! '||CHR(10)||CHR(13)||
                           'CADASTRE O MUNICÍPIO ' || R_CARGA_CONHECIMENTO.IDTRANSPORTADORA || ' NA TABELA DESTINATÁRIO! '||CHR(10)||CHR(13)||
                           'O VALOR DO CONHECIMENTO SERÁ R$ 0,00 (ZERO)',  'PROGRAMACAO'); 
      END IF;
    
      CLOSE C_KM_IND;  
    
    ELSE
    
      OPEN C_KM_IND(R_CARGA_CONHECIMENTO.MUNICIPIODESTINATARIO);
      -- ORIGINAL: FETCH C_KM_IND INTO W_KILOMETRAGEM, W_INDICECALCULO, W_FATORDECALCULO, W_CIDA_CODIGO_ORIGEM, W_CIDA_CODIGO_DESTINO;
      FETCH C_KM_IND INTO W_CIDA_CODIGO_ORIGEM;
      FETCH C_KM_IND INTO W_CIDA_CODIGO_DESTINO;
    
      IF C_KM_IND%NOTFOUND THEN
       -- GRAVAR LOG NA NOVA TABELA DE LOG
        INSERT INTO LOG_PROCESSAMENTO(DATA, DESCRICAO, TP_PROCESSAMENTO)
        VALUES(P_DATA_LOG, 'ATENÇÃO !!...DESTINO NÃO INFORMADO ! '||CHR(10)||CHR(13)||
                               'CADASTRE  O MUNICÍPIO ' || R_CARGA_CONHECIMENTO.MUNICIPIODESTINATARIO || ' NA TABELA DESTINATÁRIO! '||CHR(10)||CHR(13)||
                               'O VALOR DO CONHECIMENTO SERÁ R$ 0,00 (ZERO)',  'PROGRAMACAO');
      END IF;
    
      CLOSE C_KM_IND;   
    
    END IF;
    
    BEGIN  
        INSERT 
        INTO FRETE.CONHECIMENTO 
          (   
            NUM_CONHECIMENTO,
            NUM_PROGRAMACAO,
            VAL_MERCADORIAS,    
            NATUREZA,
            QTD_VOLUME,
            ESPECIE,
            PESO_KG,
            PESO_CUBADO,
            STATUS,
            COSO_ID,
            VAL_FRETE_LOJA, 
            VAL_FRETE, 
            FILIAL_VENDA_ID,
            COCR_ID,
            FLG_AVULSO,
            VEICULO_ID,
            TRANSPORTADORA_ID,
            LOFR_ID,
            ALIQUOTA,             
            VAL_ICMS, 
            VAL_BASE_CALCULO,
            VAL_TOTAL_FRETE,                      
            COD_CONTABIL,
            LOCAL_EMISSAO,
            LOCAL_ENTREGA,
            MENSAGEM,        
            MENSAGEM2,
            CIF_FOB,
            FLG_IMPRIMIR,
            CIDA_CODIGO_ORIGEM, 
            CIDA_CODIGO_DESTINO
          )
          VALUES
           (   
           -- REVISAR A NOMENCLATURA
            R_CARGA_CONHECIMENTO.NUMEROCONHECIMENTO,
            R_CARGA_CONHECIMENTO.NUMEROPROGRAMACAO,
            R_CARGA_CONHECIMENTO.VALORMERCADORIAS,    
            R_CARGA_CONHECIMENTO.NATUREZA,
            R_CARGA_CONHECIMENTO.QTD_VOLUME,
            R_CARGA_CONHECIMENTO.ESPECIE,
            R_CARGA_CONHECIMENTO.PESO_KG,
            R_CARGA_CONHECIMENTO.PESO_CUBADO,        
            R_CARGA_CONHECIMENTO.STATUS,
            R_CARGA_CONHECIMENTO.COSO_ID,
            R_CARGA_CONHECIMENTO.FRETEVALOR,
            NVL(R_CARGA_CONHECIMENTO.FRETEVALOR,0),
            R_CARGA_CONHECIMENTO.FILIALVENDA,
            R_CARGA_CONHECIMENTO.COCR_ID,
            'N',
            NVL(W_VEICULO_ID,0),
            W_TRANSPORTADORA_ID,
            1,        
            R_CARGA_CONHECIMENTO.ALIQUOTA,             
            R_CARGA_CONHECIMENTO.ICMSFRETE, 
            R_CARGA_CONHECIMENTO.BASECALCULOFRETE,
            R_CARGA_CONHECIMENTO.FRETEVALOR,                      
            R_CARGA_CONHECIMENTO.CODIGOCONTABIL,
            R_CARGA_CONHECIMENTO.LOCALEMISSAO,
            R_CARGA_CONHECIMENTO.LOCALENTREGA,
            R_CARGA_CONHECIMENTO.MENSAGEM,        
            R_CARGA_CONHECIMENTO.MENSAGEM2,
            R_CARGA_CONHECIMENTO.CIFFOB,
            R_CARGA_CONHECIMENTO.FLG_IMPRIMIR,
            W_CIDA_CODIGO_ORIGEM, 
            W_CIDA_CODIGO_DESTINO  
           );
    EXCEPTION
         WHEN OTHERS THEN
    
            DBMS_OUTPUT.PUT_LINE('01 - R_CARGA_CONHECIMENTO.NUMEROCONHECIMENTO: '|| R_CARGA_CONHECIMENTO.NUMEROCONHECIMENTO);
            DBMS_OUTPUT.PUT_LINE('02 - R_CARGA_CONHECIMENTO.NUMEROPROGRAMACAO: '|| R_CARGA_CONHECIMENTO.NUMEROPROGRAMACAO);
            DBMS_OUTPUT.PUT_LINE('03 - R_CARGA_CONHECIMENTO.VALORMERCADORIAS: '|| R_CARGA_CONHECIMENTO.VALORMERCADORIAS);    
            DBMS_OUTPUT.PUT_LINE('04 - R_CARGA_CONHECIMENTO.NATUREZA: '||R_CARGA_CONHECIMENTO.NATUREZA);
            DBMS_OUTPUT.PUT_LINE('05 - R_CARGA_CONHECIMENTO.QTD_VOLUME: '||R_CARGA_CONHECIMENTO.QTD_VOLUME);
            DBMS_OUTPUT.PUT_LINE('06 - R_CARGA_CONHECIMENTO.ESPECIE: '||R_CARGA_CONHECIMENTO.ESPECIE);
            DBMS_OUTPUT.PUT_LINE('07 - R_CARGA_CONHECIMENTO.PESO_KG: '||R_CARGA_CONHECIMENTO.PESO_KG);
            DBMS_OUTPUT.PUT_LINE('08 - R_CARGA_CONHECIMENTO.PESO_CUBADO: '||R_CARGA_CONHECIMENTO.PESO_CUBADO);
            DBMS_OUTPUT.PUT_LINE('09 - R_CARGA_CONHECIMENTO.STATUS: '||R_CARGA_CONHECIMENTO.STATUS);
            DBMS_OUTPUT.PUT_LINE('10 - R_CARGA_CONHECIMENTO.COSO_ID: '||R_CARGA_CONHECIMENTO.COSO_ID);
            DBMS_OUTPUT.PUT_LINE('11 - R_CARGA_CONHECIMENTO.FRETEVALOR: '||R_CARGA_CONHECIMENTO.FRETEVALOR);
            DBMS_OUTPUT.PUT_LINE('12 - NVL(R_CARGA_CONHECIMENTO.FRETEVALOR,0): '||NVL(R_CARGA_CONHECIMENTO.FRETEVALOR,0));
            DBMS_OUTPUT.PUT_LINE('13 - R_CARGA_CONHECIMENTO.FILIALVENDA: '||R_CARGA_CONHECIMENTO.FILIALVENDA);
            DBMS_OUTPUT.PUT_LINE('14 - R_CARGA_CONHECIMENTO.COCR_ID: '||R_CARGA_CONHECIMENTO.COCR_ID);
            DBMS_OUTPUT.PUT_LINE('15 - N:' || 'N');
            DBMS_OUTPUT.PUT_LINE('16 - NVL(W_VEICULO_ID,0): '||NVL(W_VEICULO_ID,0));
            DBMS_OUTPUT.PUT_LINE('17 - W_TRANSPORTADORA_ID: '||W_TRANSPORTADORA_ID);
            DBMS_OUTPUT.PUT_LINE('18 - 1: '||1);
            DBMS_OUTPUT.PUT_LINE('19 - R_CARGA_CONHECIMENTO.ALIQUOTA: '||R_CARGA_CONHECIMENTO.ALIQUOTA);
            DBMS_OUTPUT.PUT_LINE('20 - R_CARGA_CONHECIMENTO.ICMSFRETE: '||R_CARGA_CONHECIMENTO.ICMSFRETE);
            DBMS_OUTPUT.PUT_LINE('21 - R_CARGA_CONHECIMENTO.BASECALCULOFRETE: '||R_CARGA_CONHECIMENTO.BASECALCULOFRETE);
            DBMS_OUTPUT.PUT_LINE('22 - R_CARGA_CONHECIMENTO.TOTALFRETE: '||R_CARGA_CONHECIMENTO.FRETEVALOR);
            DBMS_OUTPUT.PUT_LINE('23 - R_CARGA_CONHECIMENTO.CODIGOCONTABIL: '||R_CARGA_CONHECIMENTO.CODIGOCONTABIL);
            DBMS_OUTPUT.PUT_LINE('24 - R_CARGA_CONHECIMENTO.LOCALEMISSAO: '||R_CARGA_CONHECIMENTO.LOCALEMISSAO);
            DBMS_OUTPUT.PUT_LINE('25 - R_CARGA_CONHECIMENTO.LOCALENTREGA: '||R_CARGA_CONHECIMENTO.LOCALENTREGA);   
            DBMS_OUTPUT.PUT_LINE('26 - R_CARGA_CONHECIMENTO.BASECALCULOFRETE: '||R_CARGA_CONHECIMENTO.BASECALCULOFRETE);
            DBMS_OUTPUT.PUT_LINE('27 - R_CARGA_CONHECIMENTO.MENSAGEM: '||R_CARGA_CONHECIMENTO.MENSAGEM);
            DBMS_OUTPUT.PUT_LINE('28 - R_CARGA_CONHECIMENTO.MENSAGEM2: '||R_CARGA_CONHECIMENTO.MENSAGEM2);
            DBMS_OUTPUT.PUT_LINE('29 -  R_CARGA_CONHECIMENTO.CIFFOB: '||R_CARGA_CONHECIMENTO.CIFFOB);
            DBMS_OUTPUT.PUT_LINE('30 - R_CARGA_CONHECIMENTO.FLG_IMPRIMIR: '||R_CARGA_CONHECIMENTO.FLG_IMPRIMIR);
            DBMS_OUTPUT.PUT_LINE('31 - W_CIDA_CODIGO_ORIGEM: '||W_CIDA_CODIGO_ORIGEM);
            DBMS_OUTPUT.PUT_LINE('32 - W_CIDA_CODIGO_DESTINO: '||W_CIDA_CODIGO_DESTINO);        
    
    END;
    
    SELECT NVL(NUM_ATUAL,0) INTO W_NUM_CONHECIMENTO
    FROM FRETE.ULTIMO_NUM_CONHECIMENTO;
    

    NFFS := R_CARGA_CONHECIMENTO.NOTAFISCAL1 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL2 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL3 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL4 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL5 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL6 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL7 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL8 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL9 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL10 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL11 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL12 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL13 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL14 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL15 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL16 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL17 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL18 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL19 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL20 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL21 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL22 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL23 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL24 || ',' || R_CARGA_CONHECIMENTO.NOTAFISCAL25;

    FRETE.PROC_SPLIT_NOTAS(NFFS); -- PROCEDURE PARA POPULAR A TABELA TEMPORARIA DE NOTAS

    OPEN C_NOTAS;
    FETCH C_NOTAS BULK COLLECT INTO W_TABLE_SPLIT;
    /IF C_NOTAS%NOTFOUND THEN
    RAISE_APPLICATION_ERROR(-20003, 'NÃO FOI ENCONTRADA NOTA PARA A PROGRAMAÇÃO '||P_PROGRAMACAO||' ERRO: '||SQLERRM);
    END IF;
    /
    CLOSE C_NOTAS;

    W_COUNT := 0;
    -- VERIFICA A EXISTENCIA DE REGISTRO, CASO CONTRARIO LEVANTA EXCEÇÃO -----------------------------------------------
    FOR I IN W_TABLE_SPLIT.FIRST..W_TABLE_SPLIT.LAST LOOP
    IF W_TABLE_SPLIT(I) IS NOT NULL THEN
    W_COUNT := W_COUNT + 1;
    EXIT;
    END IF;
    END LOOP;

    --DBMS_OUTPUT.PUT_LINE('W_COUNT '||W_COUNT);

    IF W_COUNT = 0 THEN
    RAISE_APPLICATION_ERROR(-20003, 'NÃO FOI ENCONTRADA NOTA PARA A PROGRAMAÇÃO '|| R_CARGA_CONHECIMENTO.NUMEROPROGRAMACAO ||' ERRO: '||SQLERRM);
    END IF;


    FOR I IN 1 .. W_TABLE_SPLIT.LAST LOOP

    W_NFFS := W_TABLE_SPLIT(I);
    
    W_SERIE_NOTA:=  SUBSTR(W_NFFS, 0, 3);
    W_NUMERO_NOTA:= SUBSTR(W_NFFS, 4, 8);
    
    IF W_TABLE_SPLIT(I) IS NOT NULL THEN
     IF W_NUMERO_NOTA IS NOT NULL THEN
    
            INSERT
            INTO FRETE.NOTAS_FISCAIS_CONHECIMENTOS 
              (      
                    CON_NUMERO,
                    NFFS_NUMERO,
                    NFFS_SERIE
              )
              VALUES
              (      
                    R_CARGA_CONHECIMENTO.NUMEROCONHECIMENTO,
                    W_NUMERO_NOTA,
                    W_SERIE_NOTA
            );
            END IF;
      END IF;
    

    END LOOP;
    W_TABLE_SPLIT := NULL;
    DELETE FROM FRETE.TMP_SPLIT_NOTAS;
    W_NUM_PROGRAM_AUX := R_CARGA_CONHECIMENTO.NUMEROPROGRAMACAO;

    END LOOP;

    COMMIT;

    /*OPEN C_NOTAS('00100108863,00100108864,00100108865');
    FETCH C_NOTAS BULK COLLECT INTO W_TABLE_SPLIT;
    CLOSE C_NOTAS;

    FOR I IN 1 .. W_TABLE_SPLIT.LAST LOOP
    DBMS_OUTPUT.PUT_LINE(W_TABLE_SPLIT(I)|| 'X');
    END LOOP;*/

    END;