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

Oracle Discussion :

[plsql] fonction et return d'une collection


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut [plsql] fonction et return d'une collection
    Bonjour,

    Je voudrais retourner une collection à partir d'une fonction
    Petit exemple de code :

    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
     
    CREATE OR REPLACE function maFonc
    return tab_service
    as
    -- Collection de type nested table
    type tab_service is table of varchar2(50);
    tab1 tab_service;
    nbre_total integer;
    i integer;
    begin
    	 select count(*) into nbre_total from demande;
    	 i := 1;
    	 for srv_rec in (select unique(service) from demande) 
    	 loop
    		 if i = 1 then
    		 	 tab1 := tab_service(srv_rec.service);
    		 else
    		 	 tab1.extend(1);
    		 	 tab1(i) := srv_rec.service;
    		 end if;
    		 i := i + 1;
    	 end loop;
     return tab1;
    end;
    Est-ce possible comme ça ou est-il préférable de créer un record?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    J'ai déclarer tab_sevice comme un nouveau type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create or replace type tab_service as table of varchar2(50);
    Maintenant, je peut faire un return mais j'ai un objet de type dataset en sortie (toad) dont je peux voir le type et le contenu dans sqlplus.

  3. #3
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par Michael#
    Maintenant, je peut faire un return mais j'ai un objet de type dataset en sortie (toad) dont je peux voir le type et le contenu dans sqlplus.
    s'agit-il d'une question ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Oui
    En fait je n'ai pas encore réussi à exploiter ce dataset dans toad, je veux juste l'afficher dans l'onglet data toad.

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Une collection se parcours grâce à ces méthodes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Declare
      Tableau tab_service  ;
    Begin
      -- appel de la fonction --
      Tableau := mafonc ;
      -- traitement de la collection en retour --
      For i IN Tableau.First .. Tableau.Last Loop
        dbms_output.put_line( Tableau(i) ) ;
      End loop ;
    End;
    http://sheikyerbouti.developpez.com/...ap5[/code]

Discussions similaires

  1. Fonction qui retourne une collection
    Par superfly dans le forum Oracle
    Réponses: 9
    Dernier message: 25/06/2009, 18h02
  2. plusieurs return dans une fonction?
    Par contremaitre dans le forum C
    Réponses: 27
    Dernier message: 21/02/2008, 09h35
  3. valeur du return dans une "fonction"
    Par Papy214 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/12/2007, 15h53
  4. [PHP-JS] return d'une fonction checkbox
    Par xaaros dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2006, 15h22
  5. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 11h04

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