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 :

cursor en pl/sql


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut cursor en pl/sql
    voila le problème:
    - un package en pl/sql contenant des fonctions et des procédures
    - une procédure contenant 3 paramètres d'entrées en IN et 1 paramètre d'entrée en OUT
    - le paramètre OUT est un cursor

    La question est la suivante:
    Sur l'éditeur SQL, comment tester la procédure? Comment s'effectue l'appel de la procédure avec le cursor en parametre?

    Voila ce que j'ai testé et qui ne compile pas:

    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
    type toto is record(var1, var2, ...varN);
    type tab is table of toto index by binary_integer;
     
    begin	
    nom_package.nom_procedure(variable1, variable2, tab);
    for i in tab.first..tab.last loop
    dbms_output.put_line 
    	(
                to_char(tab.var1||
    	           tab.var2||
    	           tab.var3
    	);
    end loop;
    end;
    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Votre code travaille un tableau et non sur un curseur.

    Pour la déclaration d'un curseur avec SQL*Plus et son utilisation dans un bloc PL/SQL voir par exemple: http://www.developpez.net/forums/sho...p?t=128988&#10

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut merci bien
    c'est bon, gràce à votre aide et des recherches, c'est résolu. Pour info, voici la procédure à suivre:

    declare

    t_cursor nom_table.T_CURSOR;

    t_rec nom_table%ROWTYPE ; -- (table où est déclarer votre curseur en paramètre de sortie)


    begin

    nom_table.nom_procedure( var1,
    var2,
    var3,
    t_cursor
    );

    dbms_output.put_line(t_cur%rowcount);
    -- c'est juste pour info et savoir le nombre de ligne qui est retourné

    loop
    fetch t_cursor into t_rec;
    exit when t_cursor%NOTFOUND;

    dbms_output.put_line (
    t_rec
    );
    -- t_rec peut etre remplacé par un record et donc contenir plusieurs champs d'une ou plusieurs table. C'est selon les besoins de chacun.

    end loop;
    close t_cur;
    end;
    En espèrant que ceci peut vous aider.

    Byebye

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Merci de nous avoir fait partager la solution que tu as trouvée.

    Si tu as rencontré le problème, il est à peu près certain que quelqu'un d'autre le rencontrera, et sera content de tomber sur ta solution

Discussions similaires

  1. Cursor ORACLE PL/SQL
    Par ylecha dans le forum Oracle
    Réponses: 3
    Dernier message: 02/01/2012, 06h58
  2. Réponses: 1
    Dernier message: 05/12/2005, 12h50
  3. PL/SQL cursor
    Par lapartdombre dans le forum PL/SQL
    Réponses: 2
    Dernier message: 02/11/2005, 14h30
  4. les cursor sur sql serveur
    Par hoummass dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/10/2005, 17h10
  5. [PL/SQL] requete qui marche mais pas dans un cursor
    Par victor.ward dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h21

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