Salut,
je veux exécuter un script shell lorsqu'une nouvelle ligne est ajoutée.
Comment je peux faire ceci ? Trigger ou Procedure ?
Merci
Salut,
je veux exécuter un script shell lorsqu'une nouvelle ligne est ajoutée.
Comment je peux faire ceci ? Trigger ou Procedure ?
Merci
Bonjour,
Il faudra faire un trigger sur la table concernée pour pouvoir appeler le script à chaque insertion.
En ce qui concerne l'appel au script proprement dit, cela dépend de votre version de la base et de votre système d'exploitation. Personnellement, voici comment j'ai procédé pour appeler un script depuis une base 11gR2 installé sur un serveur Redhat.
1) J'ai créé un script test_script.ksh, dans le répertoire /home/oracle, et l'ai bien évidemment rendu exécutable :
(le #!/usr/bin/ksh est obligatoire, et il faut préciser le chemin absolu pour le fichier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #!/usr/bin/ksh echo "Super on a reussi" > /home/oracle/output.txt
2) J'ai modifié le fichier $ORACLE_HOME/rdbms/admin/externaljob.ora afin de spécifier l'utilisateur qui allait exécuter le script, ainsi que son groupe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 run_user = oracle run_group = oinstall
3) J'ai utilisé un bloc PL/SQL pour appeler le script de la façon suivante :
(je crois que cette méthode n'est valable que pour les bases 10g et supérieures)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 BEGIN dbms_scheduler.create_job(job_name=>'TEST_SCRIPT', job_type=>'executable', job_action=>'/home/oracle/test_script.ksh', enabled=>TRUE, auto_drop=>TRUE); END; /
4) J'ai vérifié dans la vue ALL_SCHEDULER_JOB_DETAILS que le job avait réussi et que le fichier /home/oracle/output.txt contenait bien la phrase voulue
Attention à DBMS_SCHEDULER qui effectue un commit implicite contrairement à DBMS_JOB.
Email : http://scr.im/waldar
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager