Estorno: O produto deve ser devolvido para nós em até 7 dias corridos considerando a data de recebimento. O valor do produto será estornado o mais breve possível após o recebimento do mesmo.

No artigo de hoje vou mostrar como executar comandos do Sistema Operacional dentro de um Banco de Dados Oracle, utilizando o package OS_COMMAND, a partir de instruções SQL ou PL/SQL.
No decorrer dos meus últimos 8 anos atuando como DBA, já vi diversas vezes em fóruns e grupos de discussão, vários usuários de Banco de Dados Oracle questionando como executar comandos do Sistema Operacional (SO) dentro do Banco de Dados (BD). Dentre as opções disponíveis, as soluções mais comuns são: executar um job externo via package DBMS_SCHEDULER ou executar o package OS_COMMAND dentro de um bloco PL/SQL. A segunda é mais difícil de implementar, mas permite maior interação entre código PL/SQL e comandos do SO. Recentemente tive que usá-la para compactar automaticamente dumps do BD, logo após sua geração, via comando gzip do SO Linux (ver artigo Compressão de dumps do Oracle Data Pump). Foi aí que surgiu a ideia de publicar este artigo.
OS_COMMAND é um pacote para uso no Oracle Database que fornece acesso ao shell do Sistema Operacional (SO) e ao sistema de arquivos, através de comandos SQL e PL/SQL. A grande vantagem que eu vejo no uso deste pacote, em relação a um job externo, é que ele permite executar um comando shell e acessar o STDIN, STDOUT e STDERR. Agora vem a pergunta: Por que esse recurso é importante? Porque ele permite verificar o retorno de um comando executado no SO, e até mesmo o erro que ocorreu em sua execução (caso ele não tenha sido executado com sucesso), permitindo alta interatividade entre comandos SQL, PL/SQL e os comandos que são executados no SO, fora do BD.
- Permite carregar arquivos de imagem ou documentos, existentes no Sistema de Arquivos do SO, em objetos BLOB,