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

SQL Oracle Discussion :

[PL/SQL] type de retour d'une fonction


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut [PL/SQL] type de retour d'une fonction
    Bonjour tout le monde

    voilà, j'ai écris une fonction dans laquelle il ya une requête qui retourne une table.
    ma question est: que doit être le type de retour de ma fonction

    merci d'avance

  2. #2
    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 table PL/SQL ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    oui, c bien ça,
    bon voila le code de ma fonction pr que ça soit plus clair

    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
     
    create or replace function ChampsTrigger (NumSequence in champs081.n_sequence%type,
    			NumChamp in champs081.champ%type)
    			return --?--
    	is
    		TYPE ValeurCollection IS TABLE OF champs081.valeur%type ;
    		varValeur	ValeurCollection;
    	begin
    		select champs081.valeur 
    		Bulk collect into varValeur
    		from champs081 
    		inner join tab081 on (champs081.n_sequence = tab081.n_sequence)
    		where (champs081.champ = NumChamp)
    		and (champs081.n_sequence = NumSequence);
    		return ( varValeur );
    	end;

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il faut créer le Type en Base
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE OR REPLACE
    TYPE TYP_REC_STOCK AS OBJECT 
    ( 
    	DATE_PREV   DATE,
    	QTE    		NUMBER 
    )
     
    CREATE OR REPLACE
    TYPE TYP_TAB_STOCK AS TABLE OF TYP_REC_STOCK
    Créer ta fonction qui renvoie ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FUNCTION F_STOCK (p_article IN VARCHAR2) 
    RETURN TYP_TAB_STOCK PIPELINED;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    FUNCTION F_STOCK (p_article IN VARCHAR2) 
    RETURN TYP_TAB_STOCK PIPELINED
    IS
    BEGIN
    	FOR r IN (Select * from Tstock where article = p_article)
    	LOOP
    		PIPE ROW( TYP_REC_STOCK (date_prev => r.date_liv_prev, qte => v_qte));
    	END LOOP;
     
    	RETURN ;
    END;
    Puis faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM TABLE(F_STOCK(monarticle))  
    WHERE ...
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    merci beaucoup, je commence à voir clair

    mais est ce que vous pouvez m'expliquer un peu votre exemple, la fonction elle fait quoi, et puis le "pipelined"

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

Discussions similaires

  1. Type de retour d'une fonction PL/PGSQL
    Par the java lover dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/01/2009, 11h13
  2. Réponses: 5
    Dernier message: 18/09/2006, 14h17
  3. Réponses: 1
    Dernier message: 25/01/2006, 10h30
  4. PL/SQL retour d'une fonction
    Par aaronw dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h25
  5. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54

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