No sqlplus eu não sei, mas se quiser fazer via procedure seria alguma 
coisa como a que estou te passando. Você só tem que mudar a abertura e 
fechamento dos arquivos para dentro do loop com um contador.
O inconveniente é que os arquivos são obrigatoriamente gerados no 
servidor. Talvez dê para colocar externo via nfs, mas nunca testei.
um abraço
Roberto

create or replace procedure GERA_TEXTO100(p_nome_texto in varchar2) as
    l_output         utl_file.file_type;
    l_separator      varchar2(10) default '\t';
    l_dir            varchar2(50);
    l_filename       varchar2(70);
    l_erro           varchar2(500) default '';
    linha            x%rowtype;
    -- 
------------------------------------------------------------------------------ 

    -- Cursor que conterá a estrutura da Tabela
    -- 
------------------------------------------------------------------------------ 

    cursor x is
        select y from z;
    e_erro_processamento exception;
begin
    -- Monta o nome do arquivo Texto
    -- 
------------------------------------------------------------------------------ 

    l_filename := trim(lower(p_nome_texto));
    -- 
------------------------------------------------------------------------------ 

    -- Verifica se os parametros foram passados
    -- 
------------------------------------------------------------------------------ 

    if p_nome_texto is null then
        l_erro := 'Nome do arquivo Texto não informado';
        raise e_erro_processamento;
    end if;
    -- 
------------------------------------------------------------------------------ 

    -- Abre o arquivo Texto com o atributo de gravação (w)
    -- 
------------------------------------------------------------------------------ 

    l_output := utl_file.fopen(l_dir, l_filename, 'w');
    if utl_file.is_open(l_output) = false then
        l_erro := 'Arquivo Texto (Write) não criado';
        raise e_erro_processamento;
    end if;
    -- 
------------------------------------------------------------------------------ 

    -- Ler conteudo do cursor x e gerar o arquivo texto
    -- 
------------------------------------------------------------------------------ 

    open x;
    loop
        fetch x
            into linha;
        exit when x%notfound;
        utl_file.put(l_output, x.columnvalue || l_separator);
        utl_file.new_line(l_output);
   
    end loop;
    close x;
    -- 
------------------------------------------------------------------------------ 

    -- Fecha o arquivo texto gerado
    -- 
------------------------------------------------------------------------------ 

    utl_file.fclose(l_output);
    -- 
------------------------------------------------------------------------------ 

    -- Verifica se o arquivo foi gravado corretamente.
    -- Abre o arquivo texto gerado com o atributo de leitura (r)
    -- 
------------------------------------------------------------------------------ 

    l_output := utl_file.fopen(l_dir, l_filename, 'r');
    if utl_file.is_open(l_output) = false then
        l_erro := 'Arquivo Texto (Read) não disponivel';
        raise e_erro_processamento;
    end if;
exception
    when e_erro_processamento then
        l_erro := l_erro || ' - ' || to_char(sqlcode) || ' - ' || sqlerrm;
        raise_application_error(-20101, l_erro);
    when no_data_found then
        l_erro := l_erro || ' - ' || to_char(sqlcode) || ' - ' || sqlerrm;
        raise_application_error(-20102, l_erro);
    when others then
                raise_application_error(-20102, to_char(sqlcode) || ' - 
' || sqlerrm);

end gera_texto100;


Eli Dias escreveu:
> Bom dia.
>
> Obrigado pelas respostas com relação as faculdades vou realmente ficar
> no IBTA....
>
> Mas preciso de uma ajuda, existe alguma forma de montar um script sql
> que ele faça o seguinte, na sua saída eu quero que ele preencha o .txt
> em 1000 linhas, após estas 1000 linhas ele começaria a distribuir as
> outras em um novo .txt.
> Seria uma limitação de linhas por spool, isso é possível?
>
> Abraços
>
>
>
>   
>> Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure 
>> » Scripts » Tutoriais acesse: 
>> http://www.oraclebr.com.br/codigo/ListaCodigo.php 
>>     
> --------------------------------------------------------------------------------------------------------------------------
>   
>> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>> responsabilidade de seus remetentes.
>>     
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
> --------------------------------------------------------------------------------------------------------------------------
>   
>> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>> http://www.oraclebr.com.br/  
>>     
> ------------------------------------------------------------------------------------------------------------------------
>   
> Links do Yahoo! Grupos
>
>  
>
>
>
>   

Responder a