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