Execução de comando SO

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
gpereira
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 61
Registrado em: Sáb, 10 Dez 2011 10:56 am
Gustavo Antonio Pereira
OCA Oracle Database 10g Administrator Certified Associate

Ola Pessoal !

Existe alguma forma de eu executar um comando de SO, por exemplo, a execução de um arquivo .bat via um procedure (PL/SQL) ?

Tenho um software que faz uma especie de validação da qualidade de dados, precisaria fazer uma população em uma tabela temporaria (até ai beleza) e após a população executar esse aplicativo via SO.

Outra duvida, após a validação dos dados(via o software citado), tenho que transferi-los da tabela temporaria para permanente. Existe uma forma de eu saber o momneto que este software terminou esta validação via banco de dados. Por exemplo o encerramento da sessao?

Digo isso porque minha ideia era via procedure começar essa população automaticamente para tabela permanente após o termino dessa validação.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá Gpereira,

Dependendo da sua versão de banco de dados, você poderia criar uma procedure JAVA para executar comandos do sistema operacional. Eu cheguei a desenvolver uma assim para o ORACLE 9i enterprise.

Com esta procedure JAVA, você poderia executar seu arquivo BAT. E você poderia chamar esta rotina JAVA de dentro de um bloco PL/SQL. Assim fica fácil você identificar quando o BAT foi executado.

Só que eu não saberia exatamente como você poderia identificar se o BAT foi executado ou não com sucesso. Uma sugestão seria o BAT gerar arquivo de LOG com o resultado da execução(ex: RESULTADO.BAD, RESULTADO.OK).

Com a mesma rotina JAVA, você poderia verificar qual arquivo foi gerado e optar por continuar ou não o processamento.

Existe uma série de passos para permitir que a sua rotina JAVA possa executar comandos do sistema operacional.

Abaixo, segue um artigo da ORACLE que explica como implementar uma rotina que execute comandos do SO em uma rotina PL/SQL.

http://www.oracle.com/technetwork/datab ... 129519.pdf

Já o link abaixo é mais direto e explica o processo de forma passo-a-passo:

http://www.toadworld.com/Blogs/tabid/67 ... L-SQL.aspx

Abraços e boa sorte,

Sergio Coutinho
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 317
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Cara, tem um material que parece ser oficial da Oracle que detalha este caso, isso talvez resolva o seu problema, segue o link:

http://www.oracle.com/technetwork/datab ... 129519.pdf

Obs.: Não sei se é possível anexar arquivos no fórum. Alguém saberia me responder?

Abçs.,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes