Importação SQL Server

30/06/2019

0

Olá Pessoal.

Sou iniciante no SQL Server e estou tentando importar um arquivo CSV mas, não estou conseguindo aparece o erro abaixo:

O tipo de valor fornecido String da origem de dados não pode ser convertido para o tipo smallint da coluna de destino especificada. (System.Data)
Falha ao converter valor de parâmetro de String em Int16. (System.Data)
Valor era muito grande ou muito pequeno para Int16. (mscorlib)

Alguém poderia me ajudar?!
Karolina

Karolina

Responder

Posts

30/06/2019

Emerson Nascimento

com certeza alguém poderá te ajudar, de forma bem genérica = pelo aviso apresentado, você está tentando gravar um conteúdo inválido para o campo.
para que você tenha uma ajuda mais precisa, seria bom você publicar a estrutura da tua tabela, algumas linhas do arquivo CSV e também a instrução que você utilizou.
Responder

30/06/2019

Karolina

A primeira vez que tentei importar tentei pelo assistente de importação do SQL studio, e os seguintes erros apareceram:

O tipo de valor fornecido String da origem de dados não pode ser convertido para o tipo smallint da coluna de destino especificada. (System.Data)
Falha ao converter valor de parâmetro de String em Int16. (System.Data)
Valor era muito grande ou muito pequeno para Int16. (mscorlib)

e também tentei importar pelo BULK INSERT mas não reconheceu o nome da minha planilha

USE test
GO
BULK INSERT 'FRETE_TEST' FROM 'C:\\Users\\c2523772\\Desktop\\Consulta\\TEST_PROJETO_DE_FRETE'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\\n'
);
GO

Responder

01/07/2019

Bruno Guelere

Bom dia,

Pela mensagem apresentada o que pode estar ocorrendo é que você está tentando gravar um numero que não está entre os valores -65536 e 65536. Essa range de valores se refere ao int16 (smallint no banco de dados). Ou ainda podem haver caracteres que não sejam números na sua string. Se contiver somente números mesmo tente trocar por int32 (int no banco de dados) ou até mesmo um int64 (bigint no banco de dados).
Responder

01/07/2019

Luiz Santos

Boa tarde Karolina.
O que acontece, é que você já criou a tabela com os tipos que você "espera" receber.
Normalmente, quando trabalhamos com planilhas excel, ele quase sempre interpreta tudo como se fosse texto. (diga-se de passagem, você vai ter menos dor de cabeça se usar um csv)

Se quer um conselho, crie uma tabela com o tipo de dados nvarchar(255).
Assim você vai conseguir importar tudo o que estiver no seu arquivo.

Em um segundo passo, você começa a converter os tipos de acordo com a sua necessidade.
Para essa brincadeira vc vai precisar de 2 tabelas.
Uma para receber os dados, conforme estão na planilha.
Outra para receber os dados depois do tratamento final.

Outra alternativa é usar o Integration Services da Microsoft, para desenhar todo o seu processo de ETL lá dentro.

Espero ter ajudado.

Grande abraço.
Responder

01/07/2019

Karolina

oi Luis.

Obrigada. importei tudo como nvarchar como falou.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar