Ler de txt e atualizar campos de várias tabelas no BD

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
rderoci
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 22
Registrado em: Sex, 07 Nov 2008 10:55 pm
Localização: RJ
iniciante;

Pessoal, qual a melhor maneira, ou seja, que eu teria a melhor performance, para fazer isso:

1)Ler de um arquivo txt, mega simples, com o seguinte formato:

1999987659
1789065441
1876633113
...


2) Onde cada linha desse txt acima seria um registro e eu teria que pesquisar em várias tabelas, e nessas várias tabelas, pesquisar em vários campos esse registro.

3)Caso ocorrer de ter em um campo de uma tabela o registro um registro do txt (sempre sem o numero 1 na frente), ou seja:
999987659
789065441
876633113

Devo atualizar colocando o numero 1 na frente.

4) Repetir essa pesquisa nesses varios campos de varias tabelas para cada registro/linha do txt.

Exemplificando, tenho 2 tabelas:

Tabela: PAPAPA
Campos:
X
Y
Z
NUMERO1
NUMERO2
NUMERO3

Tabela: COCOCO
Campos:
X
Y
Z
NUMERO1
NUMERO2
NUMERO3

Onde em NUMERO1, NUMERO2 e NUMERO3 (em ambas tabelas) eu deveria pesquisar todos os valores contidos no txt (sem o numero 1 na frente), e para cada um, caso exista em algum desses campos, atualizar o proprio campo (NUMERO1, NUMERO2 e NUMERO3) colocando o número 1 na frente do registro.

Entenderam? rsrs
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE

Anh...
Mei ruim de entender, mas vamos lá...
Pelo que entendi você quer controlar campos de umas tabela e também editar o arquivo quando necessário.
Não seria melhor você carregar os dados do arquivo para uma tabela. Utilizando alguma procedure com o UTL_FILE para fazer essa carga.
Depois você trabalhar em cima dessa tabela(ex-arquivo) e atualizar quando necessário.(A performace é melhor com os dados no banco do que em arquivos.)
Depois se precisar gerar um arquivo texto depois é bem mais fácil. Ferramentas de sql já fazem isso.(Dependendo da complexidade do arquivo).
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

Pois é cara, procura sobre os comandos de UTL_FILE
Exemplo
UTL_FILE.FOPEN(diretorio ,nome_do_arquivo,'W') <- abre o arquivo

tem o get_line que pega a linha, e depois é só tu fazer um SUBSTR até o alcance que tu quer e ir inserindo. (:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante