Bulk Insert como e quando fazer?

SQL Server

25/06/2014

importação de dados não tenho certeza se é feito com frequencia, alguem utiliza? uma vez perdida ou frequentemente.

a forma basica é somente assim?


BULK INSERT tb_unidade_taxas FROM ‘C:\arquivos_temp\tx_unid.txt’
WITH
      (
      FIRSTROW = 2,
      FIELDTERMINATOR =‘;’
      );



ele sempre importa para o formato .txt?
Mariana Carvalho

Mariana Carvalho

Curtidas 1

Melhor post

Fabiano Carvalho

Fabiano Carvalho

25/06/2014

Utilizo isso todos os dias.
Pode ser importrado formato CSV também. o básico seria isso, utilizo também o CODPAGE = 1252
Existe várias maneiras de se trabalhar com ele, eu utilizo também um arquivo FMT para informar o tamanho de cada coluna.
GOSTEI 1

Mais Respostas

Fabiano Carvalho

Fabiano Carvalho

25/06/2014

Outra alternativa é utilizar openrowset, que le arquivos access e arquivos excel.
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

25/06/2014

estarei aproveitando as respostas para gerar mais duvidas, sobre os formatos de arquivos, quais são? depois disso ele funciona como um receptor de dados de outras bases?

qual a sintaxe basica, tanto para .txt e .csv?
GOSTEI 1
Fabiano Carvalho

Fabiano Carvalho

25/06/2014

Os tipos de arquivos TXT são 3:

Delimitados
Coluna fixa
Largura fixa

Não entendi o receptor de dados. Mas se você quiser saber se é possível gerar arquivos dessa forma, é sim, é possível, através do pacote SSIS ou através do BCP no sql server que é executado via xp_cmdshell.
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

25/06/2014

estarei aproveitando as respostas para gerar mais duvidas, sobre os formatos de arquivos, quais são?


quais arquivos ele pega? txt, csv somente?

ele faz importação não é, existe a possibilidade de pegar de outras fontes de dados direto?
GOSTEI 1
Fabiano Carvalho

Fabiano Carvalho

25/06/2014

Sim, mas com OPENROWSET e não com bulk insert.

estarei aproveitando as respostas para gerar mais duvidas, sobre os formatos de arquivos, quais são?


quais arquivos ele pega? txt, csv somente?

ele faz importação não é, existe a possibilidade de pegar de outras fontes de dados direto?
T
GOSTEI 1
Mariana Carvalho

Mariana Carvalho

25/06/2014

me desculpe, mas nessa parte de importação estou sem noção mesmo.

li nessa materia sobre o Bulk Insert.

[url]http://diariodba.wordpress.com/2008/07/25/bulk-insert/[/url]
GOSTEI 1
Roniere Almeida

Roniere Almeida

25/06/2014

Fabiano, tem algum exemplo seu, para poder disponibilizar? com arquivo .txt
GOSTEI 0
Fabiano Carvalho

Fabiano Carvalho

25/06/2014

No processo que tenho, ele baixa os arquivos do ftp, descompacta e importa utilizando bulk insert.
O arquivo que ele importa não possui cabeçalho e é de largura fixa, com isso tive que informar o Arquivo FMT
Também uso while para importar todos arquivos baixados.
Não posso postar tudo.

 while @inicio <= @fim1                          
 begin                              
  set @cmd = 'BULK INSERT base.dbo.tabela                              
 FROM ''M:\PADRAO\inad\'+ (select mailing from arquivos_mailing_inad where mailing like '%txt%' and contador = @inicio ) +'''                              
 WITH (                              
  CODEPAGE = 1252,                              
  FORMATFILE = ''M:\PADRAO\inad\ARQUIVO.FMT'')'                              
 exec(@cmd)                              
 set @inicio = @inicio + 1                              
 end                               
           
GOSTEI 1
Roniere Almeida

Roniere Almeida

25/06/2014

poderia ser até um exemplo mais simples. mas valeu.
GOSTEI 0
Filipe Silva

Filipe Silva

25/06/2014

Olá galera,

não estou conseguindo aqui no meu SQL Manager for InterBase and Firebird 5.2.6, gerando a seguinte mensagem no log: 'Invalid statement'

Segue o conteúdo:

Tabela CARGOS

Coluna 1 = NOME
Coluna 2 = CARGO

Arquivo .CSV

JOAO;ELETRECISTA
MARIA;ENFERMAGEM
FILIPE;PEDREIRO
ALICE;ADMINISTRATIVO

Script

BULK INSERT CARGOS from 'C:\cargos.csv' WITH (FIELDTERMINATOR = ';');


Nem o exemplo, praticamente no CTRL C + CTRL V não está rodando.

O que está acontecendo?
GOSTEI 0
Roniere Almeida

Roniere Almeida

25/06/2014

Filipe, como o post é um pouco antigo, não acha melhor abrir um novo?
GOSTEI 0
Filipe Silva

Filipe Silva

25/06/2014

Filipe, como o post é um pouco antigo, não acha melhor abrir um novo?


Até pensei, com certeza, mas a intenção era integrar a minha dúvida a esse antigo tópico e muito útil pra mim, pq pode ser a dúvida de alguém daqui pra frente e evitar informações dispersas.

Se achar melhor, posso criar outro sim. ^^
GOSTEI 0
Fabiano Carvalho

Fabiano Carvalho

25/06/2014

Bulk Insert é para SQL Server, para firebird não sei qual é a instrução de importação em massa.
GOSTEI 0
Roniere Almeida

Roniere Almeida

25/06/2014

Bulk Insert é para SQL Server, para firebird não sei qual é a instrução de importação em massa.


Fabiano, o Felipe abriu um outro post, ele quer transferir os dados do firebird para sql server, acho que ele estava procurando um "intermediario" para fazer essa operação.
GOSTEI 0
POSTAR