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 :

Aucun affichage de mes procédures


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Aucun affichage de mes procédures
    Bonjour,


    Je suis débutant en PL/SQL, et j'essaye de faire un package permettant l'affichage d’éléments d'une base de données d'une bibliothèque, mais je n'arrive pas a afficher le résultats de mes procédures qui ont bien compilé.

    J'ai bien entré le "set serveroutput on", mais rien à faire, et je ne sais pas si ça vient de mon code ou non.

    La première procédure utilise du SQL dynamique (c'est une contrainte qu'on m'impose), j'ai essayé de suivre les structures que j'ai trouvé sur le net. La seconde utilise un curseur, mais ne retourne rien non plus.

    Je suppose que j'ai fais des erreurs impardonnables, mais comme je n'ai aucune expérience dans ce langage, j'aurais besoin de votre aide !

    Merci d'avance.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    create or replace
    PACKAGE AFFICHAGE AS 
     
    TYPE livretuple IS RECORD( 
      nom livres.nom_livre%TYPE); 
     
    CURSOR les_livres RETURN livretuple; 
     
    procedure nb_a_rendre (adherent NUMBER );
     
    procedure lst_livres_dispo;
     
    END AFFICHAGE;
     
     
     
     
    create or replace
    PACKAGE BODY AFFICHAGE AS
     
     CURSOR les_livres RETURN livretuple IS SELECT nom_livre FROM livres where dispo = 1;
     
      procedure nb_a_rendre (adherent NUMBER) IS
        query_str VARCHAR2(1000);
        num NUMBER;
    BEGIN
        query_str := 'SELECT COUNT(id_emprunt) FROM emprunt WHERE id_adherent = '|| TO_CHAR(adherent) ||' AND date_retour is null';
        EXECUTE IMMEDIATE query_str
            INTO num;
    dbms_output.put_line ('Nombre de livre à rendre :' || num);
    END; 
     
     
      PROCEDURE lst_livres_dispo IS
      s livretuple; 
    BEGIN 
      FOR s IN les_livres LOOP 
        DBMS_OUTPUT.PUT_LINE(s.nom);
      END LOOP; 
    END;
     
    END AFFICHAGE;

  2. #2
    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
    Pour vous aider vous devez donner les détails de ce que vous faites. De plus ajouter un petit jeu d'essaie complet (table et quelques données) permet de mieux vous aider.
    Ci joint votre code légèrement modifié pour attaquer les tables du schéma hr.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> CREATE OR REPLACE
      2  PACKAGE AFFICHAGE AS
      3  
      4  TYPE livretuple IS RECORD(
      5    nom employees.first_name%TYPE);
      6  
      7  CURSOR les_livres RETURN livretuple;
      8  
      9  procedure nb_a_rendre (adherent NUMBER );
     10  
     11  procedure lst_livres_dispo;
     12  
     13  END AFFICHAGE;
     14  /
     
    Package created
     
    SQL> 
    SQL> CREATE OR REPLACE
      2  PACKAGE BODY AFFICHAGE AS
      3  
      4   CURSOR les_livres RETURN livretuple IS SELECT first_name FROM employees WHERE employee_id = 100;
      5  
      6    procedure nb_a_rendre (adherent NUMBER) IS
      7      query_str VARCHAR2(1000);
      8      num NUMBER;
      9  BEGIN
     10      query_str := 'SELECT COUNT(employee_id) FROM employees WHERE department_id = '|| TO_CHAR(adherent) ||' AND manager_id is null';
     11      EXECUTE IMMEDIATE query_str
     12          INTO num;
     13     dbms_output.put_line ('Nombre de livre à rendre :' || num);
     14  END;
     15  
     16  
     17    PROCEDURE lst_livres_dispo IS
     18    s livretuple;
     19  BEGIN
     20    FOR s IN les_livres LOOP
     21      DBMS_OUTPUT.PUT_LINE(s.nom);
     22    END LOOP;
     23  END;
     24  
     25  END AFFICHAGE;
     26  /
     
    Package body created
     
    SQL> set serveroutput on
    SQL> exec affichage.lst_livres_dispo
     
    Steven
     
    PL/SQL procedure successfully completed
     
    SQL> exec affichage.nb_a_rendre(10)
     
    Nombre de livre à rendre :0
     
    PL/SQL procedure successfully completed
     
    SQL>

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Citation Envoyé par Bluuuh Voir le message
    La première procédure utilise du SQL dynamique (c'est une contrainte qu'on m'impose)
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        query_str := 'SELECT COUNT(id_emprunt) FROM emprunt WHERE id_adherent = '|| TO_CHAR(adherent) ||' AND date_retour is null';
        EXECUTE IMMEDIATE query_str
            INTO num;
    dbms_output.put_line ('Nombre de livre à rendre :' || num);
    END;
    Oh mon Dieu, mais qui est-ce qui t'oblige à faire une telle horreur ?
    Moi j'aurais démissionné

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Décisionnel
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Décisionnel

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    D’où est appelé ce code ? Toujours SQL*Plus ou un client Oracle tiers ?

Discussions similaires

  1. probleme d'affichage de mes objets
    Par alexorcet dans le forum C++
    Réponses: 5
    Dernier message: 06/12/2006, 13h18
  2. Aucun affichage dans formulaire avec onglet
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 04/12/2006, 17h59
  3. Erreur d'affichage de mes JCombobox
    Par diditin dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/06/2006, 19h54
  4. [MySQL] Requete SQL correcte Mais aucun affichage
    Par jenga dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 10/04/2006, 13h55
  5. ASP - connexion à la base OK : aucun affichage des tables
    Par priest69 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/02/2006, 09h35

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