IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Exécuter un script shell


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Exécuter un script shell
    Salut,

    je veux exécuter un script shell lorsqu'une nouvelle ligne est ajoutée.
    Comment je peux faire ceci ? Trigger ou Procedure ?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    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 :
    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
    (le #!/usr/bin/ksh est obligatoire, et il faut préciser le chemin absolu pour le fichier)

    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 :
    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;
    /
    (je crois que cette méthode n'est valable que pour les bases 10g et supérieures)

    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

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Attention à DBMS_SCHEDULER qui effectue un commit implicite contrairement à DBMS_JOB.

Discussions similaires

  1. Exécuter un script shell depuis php
    Par allyass dans le forum Linux
    Réponses: 5
    Dernier message: 12/12/2009, 01h14
  2. Réponses: 10
    Dernier message: 15/07/2008, 11h52
  3. lancer une application java sur un serveur distant en exécutant un script shell
    Par M_Dandouna dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 12/06/2008, 14h40
  4. Exécuter un script Shell en Java
    Par hyperman22 dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2007, 13h07
  5. Exécuter un script shell via le fichier .mailrc
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/06/2007, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo