[firebase-br] Importação de dados de arquivo txt

Sicnemelpor sicnemelpor em gmail.com
Qui Jan 10 10:57:44 -03 2008


Eu não vejo forma fácil de se fazer isso dentro do banco, realmente.  
Talvez com alguma UDF. Você teria que ter acesso direto aos arquivos texto  
sem serem formatados como tabela, e processar linha a linha. Baseado no  
tipo do registro (que é informado no começo dele) você decidiria em qual  
tabela armazenar a informação.

Se, e somente SE todos os registros forem exatamente do mesmo comprimento,  
você até poderia criar uma tabela externa de um só campo do tamanho do  
registro (não esqueça do CR+LF do fim, se houver) e tratar tudo com  
substrings. Desta forma é possível fazer por procedure dentro do banco.

Atualmente aqui na UFPR estou fazendo exatamente o inverso, pegando dados  
de tabelas e gerando um arquivo texto de múltiplos registros heterogêneos  
(coisas do MEC). (Programo em FreePascal no Linux).

[]s
Nelson Sicuro

> Nelson, concordo com vc, mas eu queria fazer esta programação dentro do
> banco, tipo com procedures.
>
> Pode me ajudar nessa ?
>
> Sicnemelpor escreveu:
>> A melhor forma de se fazer isso é por programação, pois esse TXT tem
>> registros de vários formatos diferentes. Não vejo forma direta para
>> importar isso para dentro do banco de dados.
>>
>> Lembra um pouco coisa de COBOL...
>>
>> []s
>> Nelson Sicuro
>>
>>
>>> Ola ...
>>>
>>> tenta formatar pelo excel depois salva ele em dbf ....
>>>
>>>
>>> Em 09/01/08, Silfar Goulart de Castro <silfar em gmail.com> escreveu:
>>>
>>>> Pessoal, tô escrevendo pra pedir uma ajuda.
>>>>
>>>> Tenho que fazer a importação de dados de um arquivo txt, porem este
>>>> arquivo não possui layout único. Cada  linha do arquivo  é um registro
>>>> de  uma determinada tabela. Deixa eu mostrar:
>>>>
>>>> linha 1 - 0300TIT000000
>>>> linha 2 - 0301TIT10000000000017               JCIRCO EDICOES
>>>> MUSICAIS                       S               aaaa
>>>> linha 3 - 0301TIT20000000000017
>>>> 0000000000027278027000105               000000000000  COM081R. PEDROSO
>>>> ALVARENGA, 543/168
>>>> linha 4 - 0301TIT30000000000017               E 06101992         
>>>> 030AMAR
>>>> linha 5 - 0309TIT0
>>>>
>>>>
>>>> linha 1 - Essa linha indica o inicio de uma transação.
>>>> linha 2 - Indica uma inclusão na tabela de titular.
>>>> linha 3 - inclusao na tabela de documentação de titular.
>>>> linha 4 - inclusao na tabela de afiliação.
>>>> linha 5 - Fim da transação.
>>>>
>>>> Bem é mai ou menos isso. eu pensei em fazer com procedures, mas não  
>>>> sei
>>>> por onde começar .
>>>>
>>>> Alguem pode me dar uma ajuda sobre isso.
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para editar sua configuração na lista, use o endereço
>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para editar sua configuração na lista, use o endereço
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>
>>
>>
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço  
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa



-- 
Usando o revolucionário cliente de correio do Opera:  
http://www.opera.com/mail/




Mais detalhes sobre a lista de discussão lista