Já fiz isso de abrir o arquivo no excel.. e todos os campos estao no lugar correto... Fiz até um teste com apenas a linha que mandei no email. E mesmo com apenas uma linha no txt está dando o erro. Uma coisa estranha que fiz para testar foi colocar "null" no campo e aí nao deu o erro. Ficando assim ";;;null;;S" Mas isso é estranho pois no campo DATA_COMPENSACAO nao preciso colocar "null" e passa normal.
[]'s Adriano ----- Original Message ----- From: Roberto Amorim To: oracle_br@yahoogrupos.com.br Sent: Wednesday, March 21, 2007 10:48 AM Subject: Re: [oracle_br] Erro em SQLLDR campo Date Acho que o erro não acontece onde você acredita. Acho que o erro ocorre antes, mas estoura em outro canto. Passa o arquivo inteiro, se couber em até 60mil linhas, para o excel e verifica se a integridade das colunas vai até o fim. pode ter alguma linha perdida. Veja, você tem dois campos USU_INTEGRA e USU_NAO_INTEGRA que são strings. Então você deve estar validando se eles têm ponto-e-vírgulas no seu interior, ou não? Se tiver estraga a coisa. O melhor nesses casos é tentar visualizar o arquivo. No excel é mais fácil. Outra opção é passar os ";" para tags <xml> e depois usar um editor adequado a isso. Aposto na falha da estrutura da tabela, e não em bytes doidos no meio dele. Um abraço Roberto Adriano de Oliveira escreveu: > pior que não tem caracter nenhum.. está nulo. > > Adriano > > ----- Original Message ----- > From: Rafael Milanez - BusinessOn > To: oracle_br@yahoogrupos.com.br > Sent: Wednesday, March 21, 2007 8:21 AM > Subject: Re: [oracle_br] Erro em SQLLDR campo Date > > > pode ser algum caracter no campo VENCIMENTO_IRRF que nao esta no formato adequando ( eu suponho isso) > > ----- Original Message ----- > From: Adriano de Oliveira > To: oracle_br@yahoogrupos.com.br > Sent: Tuesday, March 20, 2007 2:01 PM > Subject: [oracle_br] Erro em SQLLDR campo Date > > Olá pessoal. > > Estou tendo um problema estranho aqui. > Estou tentando carregar um arquivo txt para uma tabela atraves do sqlldr do Oracle 9i. > Sempre utilizei o sqlldr e nunca tive problema. Mas nesta tabela está dando esse erro: > > Record 1: Rejected - Error on table VCP_PARCELA, column VENCIMENTO_IRRF. > ORA-01858: a non-numeric character was found where a numeric was expected > > o campo VENCIMENTO_IRRF é do tipo date.. > > e aqui está uma linha do arquivo txt: > > 151295;11561SB2;1;15111993; 19.30;0;31071995; 19.30; 0.00; 0.00; 0.00; 0.00;;;0;;;;;;;;;;;;;S > > o campo é o 26º. podem ver q ele está vazio. nao tem nada entre os ponto-e-virgulas. > > aqui está meu control-file: > > LOAD DATA > INFILE 'vcp_parcela.txt' > BADFILE 'bad_vcp_parcela.txt' > APPEND > INTO TABLE VCP_PARCELA > FIELDS TERMINATED BY ';' > TRAILING NULLCOLS ( > COD_FORNECEDOR INTEGER EXTERNAL, > NDOC CHAR(20), > PARCELA INTEGER EXTERNAL, > DATA_VENCIMENTO DATE "DD/MM/YYYY" NULLIF DATA_VENCIMENTO=BLANKS, > VALOR_PARCELA FLOAT EXTERNAL NULLIF VALOR_PARCELA=BLANKS, > CODB INTEGER EXTERNAL NULLIF CODB=BLANKS, > DATA_PAGAMENTO DATE "DD/MM/YYYY" NULLIF DATA_PAGAMENTO=BLANKS, > VALOR_PAGO FLOAT EXTERNAL NULLIF VALOR_PAGO=BLANKS, > VALOR_JURO FLOAT EXTERNAL NULLIF VALOR_JURO=BLANKS, > VALOR_DESCONTO FLOAT EXTERNAL NULLIF VALOR_DESCONTO=BLANKS, > VALOR_URV FLOAT EXTERNAL NULLIF VALOR_URV=BLANKS, > CORRECAO FLOAT EXTERNAL NULLIF CORRECAO=BLANKS, > TRADUTOR INTEGER EXTERNAL NULLIF TRADUTOR=BLANKS, > TIPO_DOCUMENTO CHAR(1) NULLIF TIPO_DOCUMENTO=BLANKS, > VALOR_DEVOLUCAO FLOAT EXTERNAL NULLIF VALOR_DEVOLUCAO=BLANKS, > DATA_COMPENSACAO DATE "DD/MM/YYYY" NULLIF DATA_COMPENSACAO=BLANKS, > NCHEQUE CHAR(15) NULLIF NCHEQUE=BLANKS, > COD_BCO1 INTEGER EXTERNAL NULLIF COD_BCO1=BLANKS, > PROCESSOU CHAR(4) NULLIF PROCESSOU=BLANKS, > LOTE INTEGER EXTERNAL NULLIF LOTE=BLANKS, > SEQ_LOTE INTEGER EXTERNAL NULLIF SEQ_LOTE=BLANKS, > INTEGRAR CHAR(1) NULLIF INTEGRAR=BLANKS, > USU_INTEGRA CHAR(30) NULLIF USU_INTEGRA=BLANKS, > USU_NAO_INTEGRA CHAR(30) NULLIF USU_NAO_INTEGRA=BLANKS, > TRADUTOR_IRRF INTEGER EXTERNAL NULLIF TRADUTOR_IRRF=BLANKS, > VALOR_IRRF FLOAT EXTERNAL NULLIF VALOR_IRRF=BLANKS, > COD_TIPDOC INTEGER EXTERNAL NULLIF COD_TIPDOC=BLANKS, > VENCIMENTO_IRRF DATE "DD/MM/YYYY" NULLIF VENCIMENTO_IRRF=BLANKS, > COD_FLUXO INTEGER EXTERNAL NULLIF COD_FLUXO=BLANKS, > LANCA_FLUXO CHAR(1) NULLIF LANCA_FLUXO=BLANKS) > > o campo VENCIMENTO_IRRF está com a clausula NULLIF mas mesmo assim está dando o erro em todas as linha do txt. > Reparem que no meio do Control File tem um campo chamado DATA_COMPENSACAO que possui o mesmo formato e no arquivo txt tbm está nulo e neste campo não dá problema. > > Alguém tem uma idéia do que pode ser? > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > >> Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php >> > ---------------------------------------------------------- > >> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. >> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > ---------------------------------------------------------- > >> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ >> > ---------------------------------------------------------- > Links do Yahoo! Grupos > > > > > [As partes desta mensagem que não continham texto foram removidas]