› Fóruns › Banco de dados Oracle › Executar arquivo do linux em uma procedure no oracle.
- Este tópico contém 19 respostas, 6 vozes e foi atualizado pela última vez 12 anos atrás por
vanessa mortago amato.
-
AutorPosts
-
7 de janeiro de 2009 às 5:02 pm #84558
dbafer
ParticipanteLeandro também não executa desse geito.
Obrigado.
7 de janeiro de 2009 às 9:20 pm #84568Leonardo Litz
ParticipanteTente executar um outro comando, um cp normal para ver se executa.
7 de janeiro de 2009 às 10:06 pm #84574dbafer
ParticipanteLeandro nenhum comando está sendo executado, mesmo sendo bem simples.
Será que existe outra maneira sem ser por meio de java ?Obrigado.
9 de janeiro de 2009 às 3:12 pm #84607Leonardo Litz
ParticipanteCara, o que vc pode fazer é criar um crontab no seu linux que de tempos em tempo verifique uma determinada pasta, nesta pasta vc gera um arquivo por utl file com os comandos que vc quer que execute, o seu crontab deverá verificar se existe algum arquivo nesta pasta, havendo, execute-o e depois o apague. Programe seu crontab para que faca isso a cada um minuto.
Mas via java eu utilizo aqui para mandar impressão e funcional normalmente.
Vlw Leonardo Litz
15 de abril de 2014 às 2:06 am #106540vanessa mortago amato
ParticipantePessoal,
Achei o tópico interessante e fiz uns testes aqui.
Eu não entendo nada de java então tentei o caminho sugerido pelo Portilho na criação do job e chamada na procedure:
1. Criei um arquivo no homeoracle com o nome de test.sh com o conteudo abaixo:
#!/bin/ksh
echo “Calling shell script from Oracle usign dbms scheduler `date`” >> /home/oracle/test.log2.Criei uma credencial para executar o job com o usuário do SO:
BEGIN
DBMS_SCHEDULER.create_credential(
credential_name => ‘vanessa_credential’,
username => ‘oracle’, — usuario do SO dono do arquivo sh
password => ‘oracle’); — senha do usuario do SO dono do arquivo
END;3. Criei o job associando a minha credencial:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => ‘TEST_SHELL’,
job_type => ‘EXECUTABLE’,
job_action => ‘/home/oracle/teste.sh’,
start_date => SYSDATE,
repeat_interval => ‘FREQ=MINUTELY; INTERVAL=1’,
enabled => TRUE,
credential_name => ‘VANESSA_CREDENTIAL’,
comments => ‘Calling shell script from Oracle’
);
END;
/4.Incluir a chamada na procedure. No meu caso o job já está programado para executar de 1 em 1 minuto.
BEGIN
DBMS_SCHEDULER.RUN_JOB(
‘TEST_SHELL’
);
END;
/O output gerado no SO:
Calling shell script from Oracle usign dbms scheduler Mon Apr 14 18:47:45 BRT 2014
Calling shell script from Oracle usign dbms scheduler Mon Apr 14 18:48:45 BRT 2014
Calling shell script from Oracle usign dbms scheduler Mon Apr 14 18:49:45 BRT 2014Vanessa
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Executar arquivo do linux em uma procedure no oracle.