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 :

Récupérer select d'une procédure stockée sous SQL*Plus


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récupérer select d'une procédure stockée sous SQL*Plus
    Bonjour,

    Je travaille sous 10g.
    J'ai compilé la procédure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE PROCEDURE GETALLACCOUNT
     IS
    CURSOR mycursor IS
      SELECT * FROM t_account;
      row t_account%ROWTYPE;
    BEGIN
       OPEN mycursor ;
      LOOP
            FETCH mycursor INTO row ;
            EXIT WHEN mycursor%NOTFOUND;
      END LOOP;
    END;
    Et quand je lance sous SQL*Plus :
    Il me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Procédure PL/SQL terminée avec succès.
    Super mais moi je voudrais voir ces lignes

    Comment je fais ?

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Math_Ador Voir le message
    Comment je fais ?
    tu lui passes la bonne commande !
    Cf : http://sheikyerbouti.developpez.com/pl_sql/?page=Chap7

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Voyez du cote du package DBMS_OUTPUT. (qui va devenir cotre meilleur ami pou debug votre code )
    Sous SQLplus vous devrez egalement utiliser la commande SET serveroutput ON pour voire les lignes en questions.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE PROCEDURE GETALLACCOUNT
     IS
    CURSOR mycursor IS
      SELECT * FROM t_account;
    BEGIN
       FOR c IN mycursor LOOP
            --  print your row
            dbms_output.put_line(c.column_x||'|'||c.column_y) ;
      END LOOP;
    END;
    D'autre part si vous tenez vraiment a la structure OPEN FETCH CLOSE, la clause EXIT devrait se trouver en haut de votre boucle. Sinon vous aurez votre dernier enregistrement processed 2 fois dans votre boucle. N'oubliewz pas non plus de fermer le curseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE PROCEDURE GETALLACCOUNT
     IS
    CURSOR mycursor IS
      SELECT * FROM t_account;
      row t_account%ROWTYPE;
    BEGIN
       OPEN mycursor ;
      LOOP 
            EXIT WHEN mycursor%NOTFOUND;
            FETCH mycursor INTO row ;
            dbms_output.put_line(row.column_x||'|'||row.column_y) ;        
      END LOOP;
      CLOSE mycursor ;
    END;

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jorafali Voir le message
    si vous tenez vraiment a la structure OPEN FETCH CLOSE,
    Tout d'abord merci à vous deux,
    en fait je voulez simplement faire une procédure du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     is
    begin
     SELECT *  FROM t_account;
    end;
    le plus simplement possible, mais bien que ça soit possible sous mysql et sqlserver c'est problématique sous Oracle... Et comme je ne connais pas trop Oracle....

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Math_Ador Voir le message
    Tout d'abord merci à vous deux,
    en fait je voulez simplement faire une procédure du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     is
    begin
     SELECT *  FROM t_account;
    end;
    le plus simplement possible, mais bien que ça soit possible sous mysql et sqlserver c'est problématique sous Oracle... Et comme je ne connais pas trop Oracle....
    Je trouve tout à fait normal que pour quelque un qui ne connaît pas bien Oracle écrire une procédure simple soit problématique.

Discussions similaires

  1. [XL-2013] Retour d'une procédure stockée sur sql server - Multi Select
    Par i0raek dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/10/2013, 12h29
  2. Exécuter une procédure stockée sous SQL*Plus
    Par awalter1 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 02/10/2012, 11h01
  3. 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
  4. 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

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