Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Migrações de Bases de Dados.
30-01-2011, 22:34 (Esta mensagem foi modificada pela última vez a: 31-01-2011 13:16 por JPedrosa.)
Mensagem: #12
RE: Migrações de Bases de Dados.
Porra,
esqueci-me de ti rapaz.

Um CTL para ti.
não mexo em datas com os últimos dígitos, nem aqui pude testar, mas diria que o FF3, é o que precisas.
Mandei o exemplo em modo "append", se quiseres em modo replace ... é só apagar o APPEND.

Código:
load data
CHARACTERSET UTF8
infile 'EXEMPLO.idl'
append into table EXEMPLO
fields terminated by "|" optionally enclosed by '"'
TRAILING NULLCOLS(
    ID         
    ,DATA_REGISTO                "TO_DATE(:DATA_REGISTO, 'YYYY-MM-DD HH24:MI:SS.FF3')"
    ,NOME                
    ,CIDADE                
    ,IDADE
    ,PROFISSAO
)

Olha, segue aqui um ficheiro exemplo, que te dá para veres algumas funções possíveis.
É um ctl feito por um colega que eu martelei para reduzir mtos campos e alterar algumas labels.

Os selects funcionam como lookups e são muito úteis para carregar tabelas "filhas", ou para carregar códigos em vez de descrições ou o inverso.

Por exemplo, no que tu forneceste, imagina que tinhas uma tabela àparte que tinha registos tipo TABELA.CODIGO = VEND, TABELA.DESCRICAO = Vendedor
E o teu ficheiro tem a descrição, mas tu queres gravar na tabela o código.
Usas um lookup para isto. espero ter ajudado.

Código:
load data
CHARACTERSET UTF8
infile 'TABELA_EXEMPLO.idl'
append into table TABELA_EXEMPLO
fields terminated by "|" optionally enclosed by '"'
TRAILING NULLCOLS(
    TABELA_EXEMPLO_ID         "MEETING_ATTENDEE_SEQ.NEXTVAL"
    ,CAMPO_TEXTO_1
    ,CAMPO_CODIGO_ID                "PT_FIND_CODIGO_ID(:CAMPO_CODIGO_ID)"
    ,STATUS_CHANGE_DATE         "TO_DATE(:STATUS_CHANGE_DATE, 'YYYY-MM-DD')"
    ,LOCAL_ID
    ,MORADA_TEXTO                "(SELECT line_1_address FROM address WHERE address_id = (SELECT address_id FROM affiliation WHERE affiliation_id = PT_FIND_AFFILIATION_ID(:LOCAL_ID)))"
    ,CITY                        "(SELECT city FROM address WHERE address_id = (SELECT address_id FROM affiliation WHERE affiliation_id = PT_FIND_AFFILIATION_ID(:LOCAL_ID)))"
)

Embora não recomende, isto suporta até carregar para várias tabelas, mas vais-te meter em confusão desnecessária.

Algo que te vai ajudar

Peço imensa desculpa por me ter esquecido, mas ando sempre a mil.

EDIT: Estive a ver aqui exemplos, e o ideal era conseguires tirar do informix sem as fracções de segundo, particularmente se vêm sempre a zero. Vai dar chatisse para importar. É que o Oracle pelo que vi, as fracções de segundos é apenas para a variavel do tipo TimeStamp e não para o Date.

Cumps,
JP
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
RE: Migrações de Bases de Dados. - JPedrosa - 30-01-2011 22:34

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)