Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pontes

para UTL_FILE e TO_DATE

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.