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 une procédure stockée sous SQL*Plus


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut Exécuter une procédure stockée sous SQL*Plus
    Bonjour,
    Je cherche à tester sous sqlplus (oracle 10g) une procédure stockée qui a la particularité de retourner une liste. La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE CopyGetWorldAirportInRect(listret OUT SYS_REFCURSOR) AS 
    BEGIN
    	OPEN listret FOR
    	SELECT AIRPORT_CODE 
    	FROM w_airpor;
    END CopyGetWorldAirportInRect;
    Dans le cas d'une procédure sans valeur de retour, je fais execute <le package>.CopyGetWorldAirportInRect() mais là je ne sais pas.
    merci de votre aide

  2. #2
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Tu peux tester ta procédure en écrivant un petit bloc PL/SQL avec la déclaration de ta variable REFCURSOR.

    exemple :

    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
    DECLARE 
      v_listret SYS_REFCURSOR;
      v_airport_code   NUMBER;
     
    BEGIN
      CopyGetWorldAirportInRect(v_listret);
     
      LOOP
        FETCH v_listret INTO v_airport_code;
        EXIT WHEN v_listret%NOTFOUND;
     
        dbms_output.put_line(v_airport_code);
      END LOOP;
      CLOSE v_listret;
    END;

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    oui effectivement. Merci pour l'exemple. Je pensais à une solution plus directe et fournie par sqlplus.
    merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut
    Rien a voir avec Oracle, mais pourquoi vous ne mettez pas une fonction au lieu de mettre une procedure avec juste un parametre out?
    Je ne trouve pas que ca aide a la comprehension.

  5. #5
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Citation Envoyé par awalter1 Voir le message
    oui effectivement. Merci pour l'exemple. Je pensais à une solution plus directe et fournie par sqlplus.
    merci
    Plus direct et spécifique à SQLPlus tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    variable listret refcursor;
    exec CopyGetWorldAirportInRect( :listret );
    print listret;

  6. #6
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    C'est exactement ce que je voulais.
    Merci beaucoup.

    Pour rams7s : je m'interface avec du python, et je ne sais le faire que via une procédure. Il y a peu de documentation sur le sujet.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut
    Il y a pas besoin de beaucoup de documentation, mais juste de celle qu'il faut.

    http://www.oracle.com/webfolder/tech...hon_db.htm#t10
    J'imagine que le lien au dessus (la premiere reponse de google a la requete python and plsql function) pourrait vous aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/10/2010, 17h11
  2. Exécution d'une procédure stockée sous sql server 2000
    Par amirad dans le forum Développement
    Réponses: 2
    Dernier message: 27/04/2009, 09h50
  3. Exécuter une procédure stockée PL/SQL Oracle sous Talend
    Par robinson50 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 03/11/2008, 10h51
  4. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  5. Exécution d'une procédure stockée dans Sql
    Par Pascalp dans le forum Access
    Réponses: 4
    Dernier message: 01/09/2006, 11h47

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