Tudo jóia ? Então, primeiro em SQL puro apenas vc provavelmente ** não ** vai 
conseguir, vai ter que mixar PL/SQL....
 No caso, primeiro de tudo ** não existe ** um comando PL/SQL que permita vc 
fazer nem insert nem replace de arquivo-texto - na package apropriada UTL_FILE, 
consulte na doc e verá que temos leitura de linha, gravação de linha, renomear, 
apagar o arquivo, mas não INSERT de string em posição determinada numa linha : 
o procedimento então será vc ler as linhas uma a uma para um buffer, inserir no 
buffer a string que vc quer, e depois gravar de novo a linha... Como não existe 
um comando de trocar a linha, o mais fácil seria vc gravar as novas linhas num 
novo arquivo, aí depois vc apaga o original e renomeia o novo para o nome do 
velho....
 O procedimento para inserir algo numa string pode ser feito via REGEXP (se vc 
tiver isso disponível na sua versão do RDBMS Oracle, que vc NÂO DIZ qual é - 
iirc regexp foi introduzido no 10g, só não lembro se R1 ou R2), OU então 
simplesmente separando com SUBSTR os 3 primeiros caracteres do buffer e 
concatenando esse pedaçõ com o novo texto que vc quer e depois com o resto : 
veja 
http://stackoverflow.com/questions/18230658/oracle-insert-character-into-a-string
 para um exemplinho de cada técnica : não é Exatamente a lógica que vc quer que 
está representada mas com certeza vai ser algo próximo....

A lógica geral da sua rotina portanto vai ser :

abrir o arquivo de texto original
criar o arquivo de texto 'temporário'/de trabalho 
loop enquanto não chegou no fim de arquivo
  ler uma linha e colocar num buffer/variável
  inserir na 4a posição a string que vc quer
  gravar o buffer numa nova linha no arquivo de trabalho
end loop
fechar ambos arquivos
apagar arquivo original
renomear arquivo de trabalho para o nome do original


[]s

  Chiappa
  • [oracle_br] Inserção... Jales Jose Moraes malphig...@yahoo.com.br [oracle_br]
    • [oracle_br] Re:... jlchia...@yahoo.com.br [oracle_br]

Responder a