Chamar um shellscript (unix) pelo oracle

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
rcoelho_6
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Ter, 04 Nov 2008 1:56 pm
Localização: SP - são Paulo

Pessoal,

Vocês sabem algum meio para eu chamar um shellscript atravez do PL/SQL?

Teoricamente essa shell estaria em uma apra qualquer
Tipo:

Selecionar tudo

/home/rcoelho_6/ 
e teria um nome do tipo myshell.sh.

Precisava executar ela atravêz do oracle.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Uma forma é usar isso:
http://glufke.net/oracle/viewtopic.php?t=2226

Mas pelo que eu sei, existem outras formas, inclusive em java que executam no S.O.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

se for automatico, pode ser via dbms_schedule,

fora isso, acho que só se fizer uma classe em java....
rcoelho_6
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Ter, 04 Nov 2008 1:56 pm
Localização: SP - são Paulo

Pior q não tenho o dbms_schedule disponivel aqui pra mim, nem a dbms_pipe.

Imaginei que existiam jeitos mais faceis para executar um schell pelo oracle.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

o que o shell faz?

talvez o que você quer fazer de pra fazer pelo oracle, de outro jeito...
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á rcoelho,

Existem algumas alternativas para você executar comandos do sistema operacional através do PL/SQL.

Você poderia:

- Desenvolver uma biblioteca externa e incorporar ao banco;
- Usar as rotinas do DBMS_SCHEDULLER para executar comandos de sistema operacional;
- Desenvolver rotinas JAVA no banco de dados, de forma a executar pelo PL/SQL;

Das três, a mais viável seria a de desenvolver rotinas java e incorporar no banco de dados. Mas entenda que ela só executaria os comandos no próprio servidor onde se encontra o banco.

Você não precisa ser um EXPERT java para desenvolver estas rotinas. Existem vários modelos prontos que você pode encontrar em sites da Internet.

O importante neste caso é você tomar bastante cuidado ao liberar as permissões necessárias para executar os comandos no sistema operacional via java, pois se isso for mal administrado ou você liberar muitas permissões, você aumenta o risco de alguém "detonar" o sistema operativo da máquina uma vez que estas permissões foram abertas por meio do PL/SQL.

Existe uma documentação da Oracle que apresenta um resumo de como utilizar o java em PL/SQL:

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

Existem alguns artigos (exemplos) onde você pode ter uma idéia dos procedimentos necessários:

http://www.oracle-base.com/articles/8i/ ... mPLSQL.php
http://asktom.oracle.com/pls/asktom/f?p ... 2229840241

Faça uma pesquisa nestes artigos (especialmente o da oracle) e tente adaptar um dos exemplos.

Se tiver dúvidas, poste por aquí.

Pode ser que o pessoal do forum disponha de outras soluções.

Abraços,

Sergio Coutinho
rcoelho_6
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Ter, 04 Nov 2008 1:56 pm
Localização: SP - são Paulo

Gostei da solução JAVA, obrigado stcoutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 4 visitantes