Alysson, é exatamente isto que estou procurando. Queria que o Oracle 
criasse uma pasta com o nome do usuário p/ receber os arquivos texto. Só 
que meu banco é 8i. Não existe algum jeito de fazê-lo no 8i? Desde já, 
obrigado.

rflribeiro
msn:[EMAIL PROTECTED]


Allyson - Listas wrote:

>Até onde sei o Oracle cria apenas o arquivo caso este não exista através 
>do modo de abertura do utl_file.fopen.
>Porém como vc sabe o UTL_FILE_DIR necessita de um reboot para ter 
>validade. A partir do Oracle 9i surgiu o conceito de directory, que é 
>uma forma mais flexível de trabalhar com o pacote utl_file, veja um 
>exemplo...
>
>create or replace directory EXPORTS as 'c:\exports'    <--- cria um 
>objeto no banco do tipo diretorio
>depois de criado o diretorio vc deve dar privilegios de read ou write 
>pro usuario... grant read,write on directory exports to usuario
>
>No meu exemplo fiz tudo como system por preguiça :)
>
>Veja um código PL/SQL bem simples...
>
>create or replace procedure stp_cria_arquivo(diretorio in varchar2, 
>arquivo in varchar2)
>is
>  arquivo_saida utl_file.file_type;
>begin
>  arquivo_saida := utl_file.fopen(location => diretorio,filename => 
>arquivo,open_mode => 'w');
>  utl_file.put_line(arquivo_saida,'teste123');
>  utl_file.fclose(arquivo_saida);
>end stp_cria_arquivo;
>
>Agora veja a flexibilidade
>
>SQL> exec stp_cria_arquivo('EXPORTS', 'teste1.txt') ;
>
>SQL> ho type c:\exports\teste1.txt
>teste123
>
>Vamos mudar o diretorio exports para c:\abc
>
>create or replace directory EXPORTS as 'c:\abc' ;
>
>Agora vamos executar novamente a procedure
>
>SQL> exec stp_cria_arquivo('EXPORTS', 'teste1.txt') ;
>SQL> ho type c:\abc\teste1.txt
>teste123
>
>Veja que alterei apenas o destino do objeto directory e nao foi 
>necessário reboot do servidor :)
>
>
>[]'s
>
>
>[EMAIL PROTECTED] wrote:
>
>  
>
>>Quando defino o caminho do arquivo texto gerado pelo UTL_FILE, o banco
>>cria a pasta, se ela não existir? Caso ele crie a pasta, posso criar uma
>>pasta central e dar permissão de leitura p/ todos na rede. O banco criaria
>>uma pasta p/ cada procedimento de exportação dentro dela, utilizando o
>>horario como nome, por exemplo. Ao final de cada procedimento de
>>exportação dos dados p/ os arquivos texto eu faria o VB6 abrir via shell
>>um explorer exibindo o conteúdo desta pasta compartilhada na máquina do
>>cliente mesmo... Será que vira?
>>



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a