Eu tenho que atualizar vários objetos em muitas instâncias. Para conseguir isso, estou usando DBMS_METADATA para criar as instruções DDL.
Até agora, tenho as instruções DDL e as salvo em uma TABLE. Gostaria de salvar as referidas instruções DDL em um arquivo .sql para cada objeto.
Sei que posso fazer isso com C#, mas até agora consegui fazer tudo o que precisava com PL/SQL. Existe uma maneira de criar os arquivos .sql com PL/SQL?
Isso é relativamente fácil. Usando o pacote UTL_FILE no Oracle, você pode criar um arquivo no sistema de arquivos do servidor e gravar a saída de qualquer instrução PL/SQL nele. Na verdade, você também pode usá-lo para ler dados de um arquivo. http://psoug.org/reference/utl_file.html
Você também pode querer ler um pouco sobre o tipo de objeto Directory, já que é um pré-requisito para usar o pacote UTL_FILE; http://psoug.org/reference/directories.html
-- Aqui está um exemplo de um procedimento que grava dados ascii em um objeto de diretório Oracle existente. O usuário que executa o código precisa ter acesso de leitura/gravação ao objeto Oracle Directory.
O parâmetro p_data é um CLOB que (neste caso) conteria todos os dados ASCII sendo gravados no diretório p_dir e o nome do p_file (que é criado em tempo de execução). Pode ser necessário fazer algumas conversões clob em seus dados, dependendo dos tipos de dados nos resultados da consulta que você usaria para preencher o objeto clob.