Bonjour.

Je souhaite disposer du code me permettant de réaliser ce cas d'utilisation :
1. Déclarer une fonction PL/SQL qui renvoie un enregistrement unique et complet d'une table selon une valeur de sa clé
2. Tester cette fonction depuis SQL Developper

Voici le code de déclaration de ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
create or replace 
FUNCTION FNC_SAA_GetOrganeById 
(
  ORG_ID IN VARCHAR2,  
  ORGANE OUT rfp_organe_org%ROWTYPE  
) 
RETURN NUMBER AS
 
BEGIN
  SELECT * INTO ORGANE FROM rfp_organe_org WHERE org_code = ORG_ID;
  RETURN 1;
END FNC_SAA_GetOrganeById;
Je ne sais pas quel type utiliser dans le code d'appel pour récupérer l'enregistrement en sortie de fonction (ici, test avec REFCURSOR) ... mais le code d'appel est celui-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
variable RET_ORGANE REFCURSOR;
variable RET_CODE NUMBER;
execute :RET_CODE := fnc_saa_getorganebyid('A112',:RET_ORGANE);
print RET_CODE;
print RET_ORGANE
J'obtiens un message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PLS-00306: numéro ou types d'arguments erronés dans appel à 'FNC_SAA_GETORGANEBYID'
Comment valider le code de ma fonction en affichant le contenu du paramètre de sortie 'ORGANE' ??
Merci de votre aide.