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

Oracle Discussion :

Lancé un .ksh à partir de la base? possible?


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut Lancé un .ksh à partir de la base? possible?
    Bonjour,
    J'ai une problématique :
    je voudrai lancé un fichier .ksh, qui se trouve sur un serveur distant, à partir de la base Oracle. Est-ce qu'il y a un moyen?


    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Intégrateur
    Inscrit en
    Novembre 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2004
    Messages : 139
    Par défaut
    Bonjour,

    Rapidement, une solution possible est la suivante :

    1. Creer une librairie en C
    Le source minimaliste ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <unistd.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int CommandSystem(char *); 
     
    int CommandSystem( char * p_cmd) 
    { 
      num = system(p_cmd);
      return num;
    }
    L'extrait du makefile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    OracleShell:	./OracleShell.c
    	-@echo "Generation de la cible <OracleShell.so>..."
    	-@cc -v -Aa -O -g -c ./OracleShell.c -o ./OracleShell.o
    	-@ld -r -o OracleShell.so OracleShell.o
    	-@echo "Fin generation <OracleShell.so>"
    2. Declarer un objet librairie avec une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE OR REPLACE LIBRARY LIB_SHELL AS '${APPLI_LIB}/OracleShell.so';
    /
    CREATE OR REPLACE FUNCTION CommandSystem (p_Command IN CHAR) RETURN PLS_INTEGER
    AS EXTERNAL
         NAME "CommandSystem"
         LIBRARY LIB_SHELL
         LANGUAGE C
         PARAMETERS ( p_Command STRING);
    /
    -- Ne pas oublier les grant qui vont bien
    GRANT EXECUTE  ...
    3. Mettre à jour le fichier listener.ora de l'instance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CALLOUT_<INSTANCE> =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
        )
      )
    SID_LIST_CALLOUT_<INSTANCE> =
       (SID_LIST =
         (SID_DESC =
           (SID_NAME = <INSTANCE>)
           (ORACLE_HOME = /u00/app/oracle/product/9.2.0)
           (PROGRAM = extproc32)
           (ENVS="EXTPROC_DLLS=ONLY:bla/bla/bla/OracleShell.so")
         )
       )
    4. demarrer le listener CALLOUT_<INSTANCE>

    5. Sous SQL-PLUS, on peut réaliser le test suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec CommandSystem("touch test");
    6. Cette commande sera exécutée par le compte propriétaire du process du listener... Donc attention aux droits ... En 1er lieu, celui d'accès à la librairie "OracleShell.so"

Discussions similaires

  1. Lancer un .ksh à partir de PB : possible ?
    Par awissam dans le forum Powerbuilder
    Réponses: 6
    Dernier message: 25/01/2007, 11h46
  2. Transmettre des commandes à un process lancé par ksh
    Par jojolepabo dans le forum Linux
    Réponses: 3
    Dernier message: 19/10/2005, 16h05
  3. [MySQL] Afficher une photo à partir de la base de données
    Par microcongo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2005, 17h29
  4. envoi automatisé de mails à partir d'une base postgresql
    Par youn608 dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 15/02/2005, 09h06
  5. Créer des clés informatiques à partir d'1 base de données??
    Par Flateric dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 11/02/2005, 07h49

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