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

SQL Oracle Discussion :

Script Shell et procèdure stockée


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut Script Shell et procèdure stockée
    Bonjour,

    J'utilise Oracle 10g.
    J'ai créé une procèdure stockée dans ma base de données Oracle.
    J'aimerais savoir comment je peux l'appeler dans mon Script Shell.

    Quelle est la synthaxe a utiliser?

    Merci pour votre aide

    Cordialement Philippe

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    select nompackage.nom_procedure(parametres) from <table> (autant d'appel que de lignes dans tables)
    select nompackage.nom_procedure(parametres) from dual (1 et 1 seul appel)

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Pardon

    Je viens de relire le message.
    Je suppose que "script shell" veut dire langage de commande de L'OS

    La réponse donnée est du pur SQL.

    On doit pouvoir passer la commande à SqlPlus, mais je ne suis pas un spécialiste de cet outil.

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2003
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 107
    Par défaut
    A partir de Linux, tu peux appeler une procédure stockée en écrivant un script Shell, comme montre l’exemple suivant :

    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
     
    #!/bin/ksh
    ################################
    # appel procedure
    ################################
     
    ${ORACLE_HOME}/bin/sqlplus -s $CONNECT_STRING <<EOF
    set serveroutput on
    set head off
    set feed off
    declare
    begin
     my_Procedure;
    end;
    /
    EOF

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    En faite, mon script shell est deja fait, il faut juste que j'appelle ma procèdure stockée pour qu'elle fasse le traitement demandé!

    Je ne comprends pas votre code!
    A quoi correspond serveroutput ? head ? feed?
    Est ce que vous pouvez mettre des commentaires dans votre code?

    Merci pour votre aide

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2003
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 107
    Par défaut
    Pour les paramètres:
    -s
    set serveroutput on
    set head off
    set feed off
    sont optionnels, tu peux les enelver.


    ORACLE_HOME : racine d'installation d’oracle.

    CONNECT_STRING : chaîne de connexion (User/Password@Database_Spec)

    User : nom d'utilisateur
    PassWord : mot de passe
    Database_Spec : nom du service défini dans le fichier TNSNAMES.ORA à utiliser pour se connecter au serveur. N'est nécessaire que si l'on souhaite se connecter à un serveur oracle distant, on peut s'en passer en local sur le serveur.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    Merci pour tout ces détails

    Ma base de données Oracle est stockée sur un serveur distant donc j'ai besoin du Database_Spec

    Cependant, je n'arrive pas a accèder au fichier TNSNAMES.ORA

    J'utilise OracleSqlDeveloper pour accèder a ma base de données Oracle
    Est-ce que je suis obligé d'installer et d'utiliser SQLPLUS?
    Car je ne comprends pas ton code ci dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${ORACLE_HOME}/bin/sqlplus -s
    Est ce que mon Script Shell te semble correct?

    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
     
    ORACLE_HOME="/Oracle"
    CONNECT_STRING="user/pwd@//192.168.xx.xxx:1521/XE"
    #192.168.xx.xxx correspond au hostname
    #1521 correspond au port
    #XE correspond au SID
     
    ${ORACLE_HOME} -s $CONNECT_STRING <<EOF
    set serveroutput on
    set head off
    set feed off
    declare
    begin
     DELETE_DOUBLONS_CAT_IMAGES;
    end;
    /
    EOF
    Merci pour ton aide

    Philippe

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/12/2007, 11h49
  2. Script de migration de procédures stockées
    Par usf70 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/12/2006, 11h10
  3. Conversion d'une procédure du script shell vers le batch dos
    Par marlenjp dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/10/2006, 14h42
  4. Appel d'un script SQL dans une procdure stockée
    Par doudou10000 dans le forum Oracle
    Réponses: 10
    Dernier message: 01/12/2004, 10h01
  5. Réponses: 21
    Dernier message: 10/11/2004, 18h04

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