locked
Importacao de dados RRS feed

  • Pergunta

  • Boa tarde,

     

    Estou tentando fazer a importacao de uma tabela do Access para o SQL Server utilizando o DTS, pelo que percebi no meio da importação acontece uma falha relacionadas a dois campos, os quais sao do tipo DATA/HORA, o erro apresentado é o abaixo:

     

    Error at destination for Row number 1. Errors encountered so far ins this task: 1.

    Insert erros, column 12 ('horalab', DBTYPE_DBTIMESTAMP), status 6: Data overflow.

    Insert erros, column 10 ('horacoleta', DBTYPE_DBTIMESTAMP), status 6: Data overflow.

    Valor de caractere inválido para a especificação de coerção.

    Valor de caractere inválido para a especificação de coerção.

     

    Alguém saberia como consigo contornar esse problemas sem grande traumas.

     

    Grato

     

     

     

    quinta-feira, 29 de março de 2007 19:57

Respostas

  • Linaldo,

     

    Estava analisando a sua situação, e pode observar que esta ocorrendo uma incompatibilidade entre o data type que o Access utiliza em relação ao data type que o SQL Server esta tentando transformar para importar.

     

    1 - Você já tentou através do DTS transformar o campos que esta DATA/HORA no Access para DateTime no SQL Server?

     

    2 - Em relação ao smalldatetime, a diferença se diz na quantidade de bytes que o campo ocupa e também na faixa de valores que esta campo pode aceitar em relação da valores de data e hora, se existir em seu banco de dados no Access valores fora da faixa que o smalldatetime aceita, isso com certeza vai gerar problemas durante a importação.

     

    sexta-feira, 30 de março de 2007 12:32

Todas as Respostas

  • Oi !

     

    Tem certeza de que no sql server os campos estão definidos como datetime e não como timestamp ?

     

    Considere também a possibilidade de utilizar o access upsizing wizard.

     

    []'s

     

    Dennes

    quinta-feira, 29 de março de 2007 23:46
  •  

     se vc. nao esta usando a transformacao para importar os campos data vem como float, altere eles para char(10) ou ate mesmo para datetime ( se a origem estiver correta com dados de dada )

     

    Abs;

    sexta-feira, 30 de março de 2007 09:58
  • Bom dia Marcelo

     

    Dei uma verificada no DTS e no momento da importacao na opção TRANSFORM o campo gerado no SQL que é o destino é do tipo smalldatetime, e la na estrutura do access que é a origem ele é DATA/HORA, ou seja, aparentemente ele deveria fazer a importacao de forma correta, mas nao é o que acontece, voce teria mais alguma dica ou sugestão que eu possa estar tentando.

     

    Grato

    sexta-feira, 30 de março de 2007 10:50
  • troque data char(10), assim ele nao ira validar a hora. qual a origem do arquivo txt, excel ?
    sexta-feira, 30 de março de 2007 11:21
  • Linaldo,

     

    Estava analisando a sua situação, e pode observar que esta ocorrendo uma incompatibilidade entre o data type que o Access utiliza em relação ao data type que o SQL Server esta tentando transformar para importar.

     

    1 - Você já tentou através do DTS transformar o campos que esta DATA/HORA no Access para DateTime no SQL Server?

     

    2 - Em relação ao smalldatetime, a diferença se diz na quantidade de bytes que o campo ocupa e também na faixa de valores que esta campo pode aceitar em relação da valores de data e hora, se existir em seu banco de dados no Access valores fora da faixa que o smalldatetime aceita, isso com certeza vai gerar problemas durante a importação.

     

    sexta-feira, 30 de março de 2007 12:32
  •  

    Marcelo,

     

    A minha origem de dados é access conforme citado nos post´s anteriores.

    segunda-feira, 2 de abril de 2007 15:06
  • Linaldo,

     

    Você poderia postar toda a estrutura da sua base de dados existente no Access, ou seja, colunas, tipos de campos, para que a gente possa fazer uma melhor análise.

    segunda-feira, 2 de abril de 2007 16:24
  •  

    Junior bom dia,

     

    Segui a dica que voce passou, ou seja, mudei o tipo de campo para DateTime no DTS e funcionou corretamente, fiz tb uma analise no conteudo do meu campo e vi que existiam  alguns valores absurdos e por esse motivo dava o tal erro de coerção.

     

    Valeu mesmo pela dica, foi perfeita.

     

    Abração

    terça-feira, 3 de abril de 2007 12:25
  • Linaldo,

     

    Valeu, obrigado pelo retorno.

     

    Se precisar estamos a disposição.

    terça-feira, 3 de abril de 2007 13:05
  • Caras as postagens de vcs me ajudaram a resolver esse mesmo problema aqui no trabalho, entaum vim mostrar aqui um pequena reflexao sobre essa dificuldade na hora da migração.

    obraigado!

    OBJETIVO:
    MIGRAR UMA BASE DE DADOS DO MYSQL PARA O SQLSERVER.

    PROBLEMA:
    AO MIGRAR UMA BASE DE DADOS DO MYSQL PARA SQL SERVER O SISTEMA DA ERRO DE STATUS 6 COM INVALID CARACTER EM TODOS OS CAMPOS DATAS QUE FALHAM NO MOMENTO DA IMPORTAÇÃO.

    CAUSA:
    IMPORTAÇÃO FOR FEITA VIA DTS IMPORT/EXPORT:
    OS CAMPOS DO TIPO DATETIME DO MYSQL, POSSUEM COMO PADRAO DE DATA NULA O VALOR DE 1899-12-30 00:00:00, SENDO QUE OS CAMPOS NULOS REFERENTES AO TIPO DATETIME NO SQL SERVER E DE VALOR IGUAL A 1900-01-01 00:00:00.000.

    SOLUÇÃO:
    DEVEMOS MODIFICAR OS TIPOS DO CAMPO DATA DE NOSSA BASE MYSQL PARA O FORMATO TIMESTAMP, QUE IRÁ TRANSFORMAR TODAS AS DATAS NULAS PARA UM VALOR IGUAL A 0000-00-00 00:00:00, E PERMANECER COM OS CAMPOS DO TIPO DATETIME NO SQLSERVER.
    terça-feira, 13 de janeiro de 2009 14:10
  • Boa Tarde Tiago,

     

    Seja bem vindo ao fórum de SQL Server do MSDN.

     

    Nós participantes do fórum teremos prazer em tentar ajudá-lo com suas dúvidas e problemas com o SQL Server através de nosso conhecimento, experiência e disponibilidade.

     

    Inicialmente eu pediria que você postasse uma nova Thread visto que embora o seu problema se pareça com o da Thread original, eles não parecem ser exatamente os mesmos. Devemos evitar threads longas e com vários assuntos diferentes.

     

    [ ]s,

     

    Gustavo Maia Aguiar

    http://gustavomaiaaguiar.spaces.live.com

     

    terça-feira, 13 de janeiro de 2009 14:23