Bonjour à tous,
Je suis bloqué sur un petit problème de syntaxe PL/SQL et malgré mes recherches sur le web rien à faire pour le résoudre.
Il s'agit de la construction d'une requête dynamique.
Voici le code de ma fonction :
(Paramètres d'entrées de la fonction : CHAMPS vaut "TOTAL" et dans le ROWTYPE de la table t_proposals le champ P_PROPOSAL.TOTAL vaut 70)
J'ai à chaque fois l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 FUNCTION FCT_EVAL_PROPOSALS(CHAMPS IN VARCHAR2, P_PROPOSAL IN T_PROPOSALS%rowtype) RETURN NUMBER IS n NUMBER; requete varchar2(100); BEGIN requete := ' select P_PROPOSAL.'||CHAMPS||' from dual '; EXECUTE IMMEDIATE requete INTO n; RETURN n; END FCT_EVAL_PROPOSALS;:
Je m'y arrache les cheveux. J'ai essayé avec des curseurs mais ça donne le même problème. Le problème semble venir du fait que P_PROPOSAL est une variable, si c'était une table aucun problème (cf : http://www.fil.univ-lille1.fr/~durif...ml/PL-SQL.html chapitre 8.16.2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ORA-00904: "P_PROPOSAL"."TOTAL" : identificateur non valide ORA-06512: à "XXX.PCK_UTIL", ligne 920 ORA-06512: à ligne 9
Quelqu'un aurait un conseil pour m'aider à faire tourner ce code?
Partager