Usuário com melhor resposta
Importacao de dados

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