Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ramos_ML

Carga de tabela dependendo do registro lido, tem como ?

Recommended Posts

Tenho arquivos .TXT onde normalmente eu utilizaria o BULK INSERT para popular as tabelas.

Entretanto, cada registro (linha), identifica a tabela destino nos primeiros 4 caracteres. Como proceder?

Para complicar um pouco... :)

Eventualmente há arquivos (.TXT) que são UNIX (apenas Linefeed) e outros WINDOWS (Carriage Return + Linefeed) e resolvi este problema com um código simples:


INSERT INTO TEMPOR EXEC xp_cmdshell 'type C:\@IMPORTA\TESTE\tempor.txt'


Seria interessante aproveitar este código para a resposta... ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala, Ramos! tranquilão?


Cara, após inserir os registros na sua tabela tempor, faça um cursor nela para passar linha por linha, validar os 4 primeiros caracteres e inserir em sua respectiva tabela, segue um exemplo, se tiver problemas, só entrar em contato que te ajudo!


INSERT INTO TEMPOR EXEC xp_cmdshell 'type C:\@IMPORTA\TESTE\tempor.txt'

declare @linha varchar(250)
declare inserelinha cursor for select [nomecoluna] from tempor
open inserelinha
fetch next from inserelinha into @linha
while @@fetch_status = 0
begin

if (left(@linha,4) = 'c3po')
insert into tabelac3po values (@linha) -- ou insert com select, ou o tratamento que for no dado.

if (left(@linha,4) = 'r2d2')
insert into tabelar2d2 values (@linha)


fetch next from inserelinha into @linha
end
close inserelinha
deallocate inserelinha



Abraço!

Diémerson S. Campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.