Boa tarde !

Obrigado Chiappa, ja clareou as idéias. ..

--------------------------------------------
Em ter, 21/3/17, jlchia...@yahoo.com.br [oracle_br] 
<oracle_br@yahoogrupos.com.br> escreveu:

 Assunto: [oracle_br] Re: Inserção de Dados Em Registro Fixo
 Para: oracle_br@yahoogrupos.com.br
 Data: Terça-feira, 21 de Março de 2017, 9:51
 
 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
  • Re: [oracle_br] Re: ... Jales Jose Moraes malphig...@yahoo.com.br [oracle_br]

Responder a