none
Erro utilizando o BULK INSERT RRS feed

  • Pergunta

  • Boa tarde,

    Alguém poderia me ajudar aparece o seguinte erro:

    "Erro de conversão dos dados de carregamento em massa (truncamento) na linha 1, coluna 10 (ChamadoFornecedor)."

    Minha consulta:

    DELETE dbo.ChamadosTemp

    bulk insert dbo.ChamadosTemp from 'C:\Chamados\glpi.csv' 

    with ( fieldterminator = ';', rowterminator = '\n', firstrow = 1, codepage = 'acp')


    SELECT * FROM ChamadosTemp

    Minha tabela:

    CREATE TABLE ChamadosTemp(
    	
    	ID VARCHAR(20) PRIMARY KEY NOT NULL,
    	Titulo VARCHAR(100) NOT NULL,
    	Entidade VARCHAR(200) NOT NULL,
    	Status VARCHAR(60) NOT NULL,
    	Requerente VARCHAR(50) NOT NULL,
    	TecnicoAtribuido VARCHAR(50) NOT NULL,
    	GrupoTecnico VARCHAR(40),
    	Categoria VARCHAR(100) NOT NULL,
    	DataAbertura VARCHAR(50) NOT NULL,
    	ChamadoFornecedor VARCHAR(20),
    	AtribuidoFornecedor VARCHAR (30),
    	Prioridade VARCHAR(15),
    	UltimaAtualização DATETIME,
    	DataFechamento DATETIME,
    	DataSoluçao DATETIME,
    	Tipo VARCHAR(15) NOT NULL,
    	StatusAprovacao VARCHAR(30),
    	Satisfacao VARCHAR(10),
    	SatisfacaoComentarios VARCHAR(200),
    	Descricao VARCHAR(600),
    	TipoSolucao VARCHAR(60)
    
    
    
    )
    GO


    na coluna que aparece esse erro está vazia no CSV. Alguma solução?.

    Ressalto que não posso ficar preenchendo essa coluna c=já que recebo esse CSV meio grande e é inviável ficar preenchendo linha a linha que está vazia.

    quarta-feira, 19 de junho de 2019 17:45

Respostas

  • Paulo,

    Você tem certeza que ele esta vazia? Pois quando nos deparemos com a mensagem de truncamento de dados, isso indica que os dados de origem que estão sendo obtidos, são maiores que o local de armazenamento definido no destino.

    Faça um teste, remova do seu comando bulk insert o opção CodePage.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta IgorFKModerator segunda-feira, 24 de junho de 2019 12:19
    quarta-feira, 19 de junho de 2019 18:15
  • "Erro de conversão dos dados de carregamento em massa (truncamento) na linha 1, coluna 10 (ChamadoFornecedor)."

    na coluna que aparece esse erro está vazia no CSV. Alguma solução?.

    Paulo, poderia postar amostra dos dados? Pode ser as 5 primeiras linhas do arquivo 'C:\Chamados\glpi.csv.

    O que significa "vazia"? Que não existe no arquivo texto ou que está em branco (por exemplo, aaa;;ccc)?

    Aproveito para sugerir a leitura do artigo “Importação de dados em massa”. Nele você encontra técnicas de como criar arquivo de formato, que permite pular colunas que não existem.


    José Diz     Belo Horizonte, MG - Brasil     [T-SQL performance tuning: Porto SQL]   [e-mail]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz quarta-feira, 19 de junho de 2019 19:40
    • Marcado como Resposta IgorFKModerator segunda-feira, 24 de junho de 2019 12:19
    quarta-feira, 19 de junho de 2019 19:14
  • Poderia me dizer o que o CodePage faz?

    Na wikipedia há algumas explicações sobre o que é, originalmente, o codepage. No caso do comando BULK INSERT essa opção permite informarmos com qual conjunto de caracteres foi gerado o arquivo texto a ser importado. Por exemplo, arquivos textos gerados no Windows geralmente possuem o conjunto de caracteres ANSI code page (daí a sigla ACP). Na época do MS-DOS, no Brasil era habitual configurar o codepage 850; arquivos textos editados em distribuição GNU/Linux usualmente são salvos em UTF-8 ou ISO-8859-1 e não se pode esquecer o EBCDIC, ainda utilizado em mainframes. Como se percebe, o codepage depende fortemente da origem.

    Em suma, nessa opção deve-se informar a conjunto de caracteres. Os valores que podem ser informados são ACP, OEM, RAW ou o valor numérico da página de código. Mais informações você encontra na documentação de BULK INSERT:


    José Diz     Belo Horizonte, MG - Brasil     [T-SQL performance tuning: Porto SQL]   [e-mail]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz sexta-feira, 21 de junho de 2019 09:49
    • Marcado como Resposta José Diz quinta-feira, 27 de junho de 2019 11:26
    quinta-feira, 20 de junho de 2019 12:02

Todas as Respostas

  • Paulo,

    Você tem certeza que ele esta vazia? Pois quando nos deparemos com a mensagem de truncamento de dados, isso indica que os dados de origem que estão sendo obtidos, são maiores que o local de armazenamento definido no destino.

    Faça um teste, remova do seu comando bulk insert o opção CodePage.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta IgorFKModerator segunda-feira, 24 de junho de 2019 12:19
    quarta-feira, 19 de junho de 2019 18:15
  • "Erro de conversão dos dados de carregamento em massa (truncamento) na linha 1, coluna 10 (ChamadoFornecedor)."

    na coluna que aparece esse erro está vazia no CSV. Alguma solução?.

    Paulo, poderia postar amostra dos dados? Pode ser as 5 primeiras linhas do arquivo 'C:\Chamados\glpi.csv.

    O que significa "vazia"? Que não existe no arquivo texto ou que está em branco (por exemplo, aaa;;ccc)?

    Aproveito para sugerir a leitura do artigo “Importação de dados em massa”. Nele você encontra técnicas de como criar arquivo de formato, que permite pular colunas que não existem.


    José Diz     Belo Horizonte, MG - Brasil     [T-SQL performance tuning: Porto SQL]   [e-mail]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz quarta-feira, 19 de junho de 2019 19:40
    • Marcado como Resposta IgorFKModerator segunda-feira, 24 de junho de 2019 12:19
    quarta-feira, 19 de junho de 2019 19:14
  • Paulo,

    Você tem certeza que ele esta vazia? Pois quando nos deparemos com a mensagem de truncamento de dados, isso indica que os dados de origem que estão sendo obtidos, são maiores que o local de armazenamento definido no destino.

    Faça um teste, remova do seu comando bulk insert o opção CodePage.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Poderia me dizer o que o CodePage faz?

    quarta-feira, 19 de junho de 2019 20:50
  • Poderia me dizer o que o CodePage faz?

    Na wikipedia há algumas explicações sobre o que é, originalmente, o codepage. No caso do comando BULK INSERT essa opção permite informarmos com qual conjunto de caracteres foi gerado o arquivo texto a ser importado. Por exemplo, arquivos textos gerados no Windows geralmente possuem o conjunto de caracteres ANSI code page (daí a sigla ACP). Na época do MS-DOS, no Brasil era habitual configurar o codepage 850; arquivos textos editados em distribuição GNU/Linux usualmente são salvos em UTF-8 ou ISO-8859-1 e não se pode esquecer o EBCDIC, ainda utilizado em mainframes. Como se percebe, o codepage depende fortemente da origem.

    Em suma, nessa opção deve-se informar a conjunto de caracteres. Os valores que podem ser informados são ACP, OEM, RAW ou o valor numérico da página de código. Mais informações você encontra na documentação de BULK INSERT:


    José Diz     Belo Horizonte, MG - Brasil     [T-SQL performance tuning: Porto SQL]   [e-mail]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz sexta-feira, 21 de junho de 2019 09:49
    • Marcado como Resposta José Diz quinta-feira, 27 de junho de 2019 11:26
    quinta-feira, 20 de junho de 2019 12:02
  • Galera deu certo muito obrigado a cada resposta !!!!!!!
    sexta-feira, 21 de junho de 2019 18:02