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![]()
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![]()
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;
Il faut créer le Type en Base
exemple
Créer ta fonction qui renvoie ce type
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FUNCTION F_STOCK (p_article IN VARCHAR2) RETURN TYP_TAB_STOCK PIPELINED;Puis faire un
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;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM TABLE(F_STOCK(monarticle)) WHERE ...
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"![]()
Partager