Pontes 0 Denunciar post Postado Agosto 2, 2007 Senhores, Estou com seguinte problema, quando tento inserir na tabela o conteúdo do arquivo texto, mais especificamente a DATA que vem do arquivo texto no formato 31072007 não consigo inserir, recebo a mensagem : ORA-01858: a non-numeric character was found where a numeric was expected ORA-06512: at line 14 OBS.: Se eu criar a table com todos os campos do tipo VARCHAR2 consigo inserir, mas se crio a tabela a ser populada com campo do tipo DATE ou NUMBER, retorna o erro acima. Alguém pode me ajudar nisto, uso oracle 8i e 9i e ambos tenho o mesmo problema. Tenho a procedure abaixo: DECLARE ARQ UTL_FILE.FILE_TYPE; LINHA VARCHAR2(240); R1 ALINEA_DEVOLUCAO%ROWTYPE; BEGIN ARQ := UTL_FILE.FOPEN('/interface/inbound/', 'CCH01.TXT', 'R'); LOOP UTL_FILE.GET_LINE(ARQ, LINHA); R1.DT_DEVOLUCAO := TO_DATE(SUBSTR(LINHA,93,10),'DD-MM-YYYY'); ETC.... INSERT INTO ALINEA_DEVOLUCAO (DT_DEVOLUCAO, ALINEA, CMC7, VR_CHEQUE, CPF, DT_EMISSAO) VALUES (R1.DT_DEVOLUCAO, R1.ALINEA, R1.CMC7, R1.VR_CHEQUE, R1.CPF, R1.DT_EMISSAO); END LOOP; EXCEPTION WHEN NO_DATA_FOUND THEN COMMIT; UTL_FILE.FCLOSE_ALL; END; Compartilhar este post Link para o post Compartilhar em outros sites
MonTiLLa 1 Denunciar post Postado Agosto 10, 2007 Opa! Seu Oracle é a versão 10g? Caso for, tenta utilizar o SQLLoader para carregar os dados e faz o mapeamento de acordo com PL-SQL. Outra coisa, tenta ir mudando a máscara que está sendo passada... DDMMYYYY, replace(SUBSTR(LINHA,93,10),'DD-MM-YYYY',DDMMYYYY), to_date(replace(SUBSTR(LINHA,93,10),'DD-MM-YYYY',DDMMYYYY),'DDMMYYYY'). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites