O problema do trimspool off é que ele vai até o tamanho da "linesize" do sqlplus. Mas poderíamos explorar mais o script, vejamos:
[EMAIL PROTECTED] scripts]$ cat test.sh sqlplus -s / <<EOS set feedback off set head off spool .tmp select rpad(username, 30,' ') ||'#' from all_users where rownum <= 10; spool off EOS cat .tmp | sed 's/#//' > t.txt rm .tmp Um script gerando um spool ".tmp" com um caracter qualquer "#" para marcar o final, depois usamos o sed para limpar e manter os espaços. Mas simples, IMHO. [EMAIL PROTECTED] scripts]$ ./test.sh FLOWS_030000 # RAFA # SCH_DEMO # SCH_PAY # FLOWS_020200 # APEX_PUBLIC_USER # FLOWS_FILES # UTIL # OPS$MARCIO # SCOTT # [EMAIL PROTECTED] scripts]$ cat t.txt FLOWS_030000 RAFA SCH_DEMO SCH_PAY FLOWS_020200 APEX_PUBLIC_USER FLOWS_FILES UTIL OPS$MARCIO SCOTT Como demonstrado, cada linha tem exatamente 30 espaços. On 5/8/07, Luis Fernando Cerri <[EMAIL PROTECTED]> wrote: > > Experimente colocar um "set trimspool off" no início do seu script > > Se isso não resolver, creio que só via utl_file mesmo. > > []s > Luis > > Em 08/05/07, janiopimentel <[EMAIL PROTECTED]<janiopimentel%40yahoo.com.br>> > escreveu: > > > > Marcio, boa noite! > > > > Veja o resultado: > > I02307303000187 18 > > > > O estranho é que ele coloca os quatro espaços que estão faltando se > > colocar algo depois do CNPJ. Veja exemplo: > > > > ---SCRIPT: > > SET COLSEP ''; > > SELECT > > 'I', > > RPAD(u.tund_cnpj,18,' ') || '1' > > FROM tund_unidade u; > > > > ---RESULTADO: > > I02307303000187 1 > > > > Sds., > > Jânio > > > > --- Em oracle_br@yahoogrupos.com.br > > <oracle_br%40yahoogrupos.com.br><oracle_br%40yahoog > rupos.com.br>, > > > "Marcio Portes" > > <[EMAIL PROTECTED]> escreveu > > > > > > Poderia fazer um teste? > > > > > > SELECT 'I', RPAD(u.tund_cnpj,18,' '), length(RPAD > > (u.tund_cnpj,18,' ')) > > > FROM tund_unidade u; > > > > > > > > > > > > On 5/8/07, janiopimentel <[EMAIL PROTECTED]> wrote: > > > > > > > > Srs., boa tarde! > > > > > > > > Estou com uma dificuldade ao gerar uns arquivos txt usando o > > SQL*PLUS. > > > > Meu script gera quase tudo certinho, exceto no final da linha que > > eu > > > > peco para deixar alguns espacos em branco e o mesmo nao deixa. > > Veja o > > > > script que estou usando (no linux): > > > > > > > > DATA="`date +%Y%m%d%H%M%S`" > > > > export TNS_ADMIN=/www/funcoes sqlplus -S appuser/[EMAIL PROTECTED] > > << EOF > > > > > /www/genexis/txt/produto$DATA.txt > > > > > > > > SET COLSEP ''; > > > > > > > > -- REGISTRO HEADER > > > > SELECT > > > > 'H', -- tipo do registro > > > > 'CADPROD ', -- nome do arquivo > > > > TO_CHAR(SYSDATE,'YYYYMMDD') -- data de criacao do arquivo > > > > FROM > > > > DUAL; > > > > > > > > -- REGISTRO IDENTIFICADOR > > > > SELECT > > > > 'I', -- tipo do registro > > > > RPAD(u.tund_cnpj,18,' ') -- AQUI ELE NAO PREENCHE O RESTANTE COM > > OS > > > > 4 ESPACOS -- cnpj do parceiro > > > > FROM > > > > tund_unidade u; > > > > QUIT; > > > > EOF > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Marcio Portes > > > Material Tecnico em Portugues - http://mportes.blogspot.com > > > Practical Learning Oracle - > > > http://mportes.blogspot.com/2006/02/practical-learning-oracle.html > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcio Portes Material Tecnico em Portugues - http://mportes.blogspot.com Practical Learning Oracle - http://mportes.blogspot.com/2006/02/practical-learning-oracle.html [As partes desta mensagem que não continham texto foram removidas]