Re: [oracle_br] Script´s

2007-10-04 Por tôpico Roberto Amorim
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_dirvarchar2(50);
l_filename   varchar2(70);
l_erro   varchar2(500) default '';
linhax%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

  



   


[oracle_br] Script´s

2007-10-04 Por tôpico Eli Dias
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



RE: [oracle_br] Script´s

2007-10-04 Por tôpico Rafael Milanez
É possivel sim,

 

Spool  c:\arquivo1.txt

Vc usa sua query com uma subquery utilizando o ROWNUM BETWEEN 1 and 1000 linhas

 

Depois spool off

 

Ai spoon c:\arquivo2.txt

 

Mesma query com rownum = ROWNUM BETWEEN 1001 and 2000 linhas

 

 

 

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Eli 
Dias
Sent: quinta-feira, 4 de outubro de 2007 10:06
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Script´s

 

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

 



[As partes desta mensagem que não continham texto foram removidas]