Complementando a resposta, voce pode usar o smb também para criar arquivos no seu client. No exemplo que fiz: do linux vou mountar um diretório através do samba client (SMB) mapeando um diretório compartilhado e gerar um arquivo vazio no meu Windows XP (que poderia ser o client da aplicação).
[EMAIL PROTECTED]> !su -c "mount -t smbfs -o username=marcio,uid=oracle,gid=dba //anakin/r2d2_backup /mnt/winxp/" Password: ****** Password: Note que a primeira Password é do su (root) e o segundo do username=marcio [EMAIL PROTECTED]> create or replace directory winxp_dir as '/mnt/winxp/utl_dir'; Directory created. Para não precisar utilizar o utl_file_dir, criamos um directory. [EMAIL PROTECTED]> declare 2 l_output utl_file.file_type; 3 begin 4 l_output := utl_file.fopen( 'WINXP_DIR', 'teste.txt', 'w' ); 5 dbms_output.put_line( 'Sucesso! Arquivo criado ! ' ); 6 utl_file.fclose( l_output ); 7 exception 8 when others then 9 dbms_output.put_line( 'Falha! Arquivo NAO criado! ' ); 10 end; 11 / Sucesso! Arquivo criado ! PL/SQL procedure successfully completed. Agora abro uma janelinha DOS: Start -> Run -> cmd vou para o diretório mapeado e vejo se o arquivo teste.txt foi criado. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\Marcio>e: E:\>cd r2d2_backup\utl_dir E:\r2d2_backup\utl_dir>dir Volume in drive E is New Volume Volume Serial Number is 0C49-8771 Directory of E:\r2d2_backup\utl_dir 11/17/2005 09:10 AM <DIR> . 11/17/2005 09:10 AM <DIR> .. 11/16/2005 02:50 PM 0 teste.txt 1 File(s) 0 bytes 1 Dir(s) 37,731,811,328 bytes free E:\r2d2_backup\utl_dir> Essa pode ser outra idéia para gerar arquivos no client usando pl/sql. jlchiappa wrote: > Pessoal, vamos colocar os pingos nos Is, aí : o PL/SQL é uma > linguagem de back-end, que roda NO SERVIDOR APENAS, é absolutamente > documentado que por si só ela é capaz de manipular apenas itens > acessíveis AO SERVIDOR, ponto. Assim sendo, SE vc quiser fazer I/O em > PL/SQL num local fora do servisor, vc ** TEM QUE **, via algum > software/recurso do SO, "mapear", tornar disponível AO SERVIDOR o > local externo, isso pode ser feito instalando-se um software de NFS, > ou mapeando-se o local remoto, http://asktom.oracle.com/pls/ask/f? > p=4950:8:::::F4950_P8_DISPLAYID:4069950506780 e > http://asktom.oracle.com/pls/ask/f? > p=4950:8:::::F4950_P8_DISPLAYID:241814624807 tem longas discussões e > dicas a respeito. > Caso não seja viável/possível isso, a solução óbvia é, para gravar > um arquivo na máquina-cliente, colocar a rotina na linguagem cliente > onde vc faz o front-end (VB no caso do colega q perguntou), e NÂO no > banco. Caso REALMENTE, por qquer motivo, vc TENHA QUE fazer o I/O em > PL/SQL e não seja possível nfs/mapeamento, aí em PL/SQL puro vai ser > IMPOSSÍVEL, vc teria que escrever uma rotina numa linguagem que o > PL/SQL suporte e que não tenha a restrição e chamar essa rotina , > pode ser em Java (via java procedure ou simulando-se um HOST), ou C > (via external procedures). > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, Elis Azevedo Nery > <[EMAIL PROTECTED]> escreveu > >>Olá! >> >> Eu também estou precisando desta solução e ainda pesquisando. O > > que encontrei foi um pacote chamado WEBUTIL, mas ainda não consegui > fazer funcionar. > >> Se alguém tiver experiência com isto, aceito sugestões. >> >> Obrigada >> Elis >> >>rflribeiro01 <[EMAIL PROTECTED]> escreveu: >> >> É possível fazer com que uma procedure que utiliza o UTL_FILE > > escreva > >>na máquina do cliente, onde está rodando a aplicação? Tenho uma >>aplicação VB que executa algumas procedures, mas não está >>funcionando... No init já foi adicionada a linha: utl_file_dir = * , >>mas não está funcionando. Abaixo, segue a proc mais simples, que não >>funciona também... Desde já, obrigado. >> >>rflribeiro >>msn: [EMAIL PROTECTED] >> >>CREATE OR REPLACE PROCEDURE P_CADEMPRESA (P_CODEMPRESA >>CADEMPRESA.CODEMPRESA%TYPE) IS >> TEXTO UTL_FILE.FILE_TYPE; >> VAR VARCHAR2(1022); >> CURSOR C1 IS SELECT CODEMPRESA, NOME FROM CADEMPRESA WHERE >>CODEMPRESA = P_CODEMPRESA ORDER BY CODEMPRESA; >>BEGIN >> TEXTO := UTL_FILE.FOPEN('D:\','CADEMPRESA.TXT','A'); >> FOR R1 IN C1 LOOP >> >>UTL_FILE.PUT_LINE(TEXTO,RPAD(TRIM(R1.CODEMPRESA),4)||'|'||RPAD(TRIM > > (R1.NOME),100)); > >> UTL_FILE.FFLUSH(TEXTO); >> END LOOP; >> UTL_FILE.FCLOSE(TEXTO); >> DBMS_OUTPUT.PUT_LINE('Arquivo gerado com sucesso!'); >>EXCEPTION >> WHEN OTHERS THEN >> DBMS_OUTPUT.PUT_LINE('* EXCEPTION (0) *'); >> DBMS_OUTPUT.PUT_LINE('ERRO DESCRICAO.....: '||SQLERRM); >> DBMS_OUTPUT.PUT_LINE('ERRO NUMERO........: '||SQLCODE); >>END; >>/ >> >> >> >> >>-------------------------------------------------------------------- > > ------------------------------------------------------ > >>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 > >> >> Yahoo! Grupos, um serviço oferecido por: > > PUBLICIDADE > >> var lrec_target="_blank";var lrec_URL=new Array(); lrec_URL[1] > > ="http://br.rd.yahoo.com/SIG=12fh4v2hu/M=380335.7481167.8369105.236989 > 3/D=brclubs/S=2137114689:HM/Y=BR/EXP=1132174244/A=3126093/R=0/id=flash > url/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066; > a?http://www.hoteis.com"; var > lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1116_lrec_ > hotels_natal.swf?clickTAG=javascript:LRECopenWindow(1)"; var > lrec_altURL="http://br.rd.yahoo.com/SIG=12fh4v2hu/M=380335.7481167.836 > 9105.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1132174244/A=3126093/R > =1/id=altimg/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485; > 12120066;a?http://www.hoteis.com"; var > lrec_altimg="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1116_lrec_hot > els_natal.gif"; var lrec_width=300;var lrec_height=250; > >> >>--------------------------------- >> 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 Termos do > > Serviço do Yahoo!. > >> >> >> >> >>--------------------------------- >> Yahoo! Acesso Grátis: Internet rápida e grátis. >>Instale o discador agora! >> >>[As partes desta mensagem que não continham texto foram removidas] > > > > > > -------------------------------------------------------------------------------------------------------------------------- > 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 > > > > > > > > -- Marcio Portes http://mportes.blogspot.com -------------------------------------------------------------------------------------------------------------------------- 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