Usuário com melhor resposta
Inserir conteudo de txt em uma tabela.

Pergunta
-
Pessoal, bom dia....
Estou com um projeto onde eu receberei arquivos de EDI numa pasta, e preciso inserir o conteudo desses arquivos numa tabela.
Caso o arquivo não chegue, ou demore pra ser inserido no banco, ele deve mandar um alerta pra um e-mail x.
É complicado pois eu peguei o projeto agora e nao tenho muitas informações. Terei uma reuniao agora a tarde para pegar mais detalhes.
Valeu mesmo pela ajuda, galera!
Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)
Respostas
-
Olá Leopoldo,
Claro, vamos lá:
linha 1: Verifico se a tabela temporária, que será usada para armazenados os dados da seu arquivo txt, já existe no banco de dados tempdb. (pois se trata de uma tabela temporária)
linha 2: Caso exista, ela será dropada.
linha 3: Crio uma tabela temporária.
linha 4: Nesta tabela temporária adiciono um campo do tipo varchar(500), ele será responsável por receber os dados do seu arquivo texto.
linha 6: Faço a inserção dos dados contidos no seu txt através do comando bulk insert. Optei por fazer esta operação com este comando pois, com ele você possui várias opções adicionais, como por exempo: indicador de quebra de linha, indicador de fim do arquivo etc.
para maiores informações do bulk insert veja o seguinte: http://msdn.microsoft.com/en-us/library/ms188365.aspx
linha 8: finalizo dando um select na tabela temporária. Você também poderá guardar os dados em uma tabela física.
Espero que tenha ficado claro.
Abraços.
Se útil, Classifique.
Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com
- Marcado como Resposta Leopoldo Nascimento quinta-feira, 1 de março de 2012 17:30
Todas as Respostas
-
Olá Leopoldo,
Que tal usarmos o Bulk Insert? Segue um exemplo.
IF EXISTS (SELECT NAME FROM TEMPDB.SYS.TABLES WHERE NAME LIKE '#TEMP_IMPORTACAO%') DROP TABLE #TEMP_IMPORTACAO CREATE TABLE #TEMP_IMPORTACAO( TEXTO VARCHAR(500) NOT NULL ) BULK INSERT #TEMP_IMPORTACAO FROM 'C:\SEU_TXT.txt' SELECT * FROM #TEMP_IMPORTACAO
Se útil, Classifique.
Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com
- Editado DhiegoPiroto quinta-feira, 1 de março de 2012 15:46
- Sugerido como Resposta DhiegoPiroto quinta-feira, 1 de março de 2012 15:46
-
E ai Dhiego, tudo bem?
Cara, eu não sei muito desses fluxos pra inserir dados em BD.
Seria possivel voce me explicar por cima o código que voce passou, por favor?
Mto obrigado pela ajuda.
Abraços
Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)
-
Olá Leopoldo,
Claro, vamos lá:
linha 1: Verifico se a tabela temporária, que será usada para armazenados os dados da seu arquivo txt, já existe no banco de dados tempdb. (pois se trata de uma tabela temporária)
linha 2: Caso exista, ela será dropada.
linha 3: Crio uma tabela temporária.
linha 4: Nesta tabela temporária adiciono um campo do tipo varchar(500), ele será responsável por receber os dados do seu arquivo texto.
linha 6: Faço a inserção dos dados contidos no seu txt através do comando bulk insert. Optei por fazer esta operação com este comando pois, com ele você possui várias opções adicionais, como por exempo: indicador de quebra de linha, indicador de fim do arquivo etc.
para maiores informações do bulk insert veja o seguinte: http://msdn.microsoft.com/en-us/library/ms188365.aspx
linha 8: finalizo dando um select na tabela temporária. Você também poderá guardar os dados em uma tabela física.
Espero que tenha ficado claro.
Abraços.
Se útil, Classifique.
Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com
- Marcado como Resposta Leopoldo Nascimento quinta-feira, 1 de março de 2012 17:30
-