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]

Responder a