Ir para conteúdo

POWERED BY:

Arquivado

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

Priscilla Rodovalho

[Resolvido] SQL Loader

Recommended Posts

Boa tarde,

 

Preciso fazer uma carga utilizando o SQL Loader, tenho um campo data, ele pode vir com NULL ou preenchido, quando vier NULL vou substituir por vazio, e quando vier preenchido irá carregar normalmente, porém estou com um problema com datas menores que 1949. Exemplo quando vier 1948 o loader carrega 2048. Isso não ocorre no PL SQL.

Quando coloco a linha abaixo corrige o problema da data, porém não consigo tratar o NULL:

 

, BIRTH_DATE "TO_TIMESTAMP(SUBSTR(:BIRTH_DATE,1,19), 'YYYY-MM-DD HH24:MI:SS')"

 

Alguém poderia me ajudar?

 

Att.

 

Priscilla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como a data vem no arquivo ?

 

Isto ocorre em geral quando o ano vem em 2 caracteres apenas.

O Oracle trata os anos anteriores a 50 como no atual século.

 

Veja aqui(pag 209).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Motta,

 

Boa tarde,

 

A data vem com o formato 1949-02-01, eu coloquei o formato RRRR-MM-DD. Consegui resolver da seguinte maneira:

 

, BIRTH_DATE "CASE WHEN :BIRTH_DATE <> 'null' THEN TO_TIMESTAMP(SUBSTR(:BIRTH_DATE,1,19), 'RRRR-MM-DD HH24:MI:SS')

END"

 

Creio eu que não seja a melhor maneira, mas não consegui resolver de outra forma.

 

Obrigada,

 

Att.

 

Priscilla

 

Como a data vem no arquivo ?

 

Isto ocorre em geral quando o ano vem em 2 caracteres apenas.

O Oracle trata os anos anteriores a 50 como no atual século.

 

Veja aqui(pag 209).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu resolveria assim , só que usando o YYYY em vez do RRRR, mas dá igual.

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.