Pessoal, precisando gerar um arquivo, aquelas coisas que precisamos sempre recorrer ao passado, mas que é muito funcional. Deixo aqui o que fiz e alguns links para maiores informações, principalmente na LEITURA de arquivos.
Para usar a gravação de arquivos em disco via package e/ou procedure, precisamos primeiramente verificar o parametro UTL_FILE_DIR que mostra em quais diretórios temos permissão de gravar arquivos.
Após verificar que em nenhum precisamos realizar a alteração, para isso podemos fazer da forma abaixo:
Também podemos fazer a alteração do parametro e reiniciar a instância:
Agora vamos ver como está o parâmetro UTL_FILE_DIR alterado:
O * mostra que podemos gravar em qualquer lugar, aonde o usuário Oracle tenha permissão de SO.
Agora vamos dar a permissão de execute para o PACOTE UTL_FILE:
Agora vejam o exemplo da procedure que vai gerar a saida do meu SQL no SO:
Também podemos trabalhar a leitura de arquivos, nesses links abaixo você encontra mais exemplos sobre arquivos com UTL_FILE.
Mais info:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_file.htm
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html
http://www.oraclehome.com.br/2012/02/13/como-ler-e-gravar-arquivos-textos-pelo-oracle-10g-ou-superior/
Só deixar uma observação, não é necessário utilizar o parâmetro UTL_FILE_DIR se você usar um ORACLE DIRECTORY, ou seja, nesse caso não é necessário dar Shutdown.
Everson, legal e obrigado pela dica. No meu caso preferi usar UTL_FILE e eu também não tinha problemas em fazer o shutdown.
😉
Credo, * é horrivel