Bonjour,
J'ai créée une fonction qui doit me renvoyer un taux...
Pour plus de facilite la voici :
Cependant elle ne fonctionne pas ( étonnant xD ).
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
25
26
27
28
29
30
31
32 create or replace FUNCTION CalcTxPLoc (mag IN VARCHAR2, per IN VARCHAR2) RETURN NUMBER IS taux_porteurs_loc NUMBER; nb_p NUMBER; nb_ploc NUMBER; req VARCHAR2(1000); req2 VARCHAR2(1000); BEGIN req := 'SELECT sum(a.pa_nb) '|| 'FROM grfid_h_200607 a , arcsde.gr_taxcodes_2001 b '|| 'WHERE a.codmag = '''||mag||''' '|| 'AND a.periode = '''||per||''' '|| 'AND a.codgeo = b.ID '|| 'AND a.codgeo NOT IN (''NP'',''PNL'',''GNE'',''XXXX'') '|| 'AND a.pa_nb > 0 ' ; EXECUTE IMMEDIATE req INTO nb_ploc; req2 := 'SELECT sum(pa_nb) '|| 'FROM grfid_h_200607 '|| 'WHERE codmag = '''||mag||''' '|| 'AND periode = '''||per||'''' ; EXECUTE IMMEDIATE req2 INTO nb_p; taux_porteurs_loc := nb_ploc/nb_p; RETURN(taux_porteurs_loc); END;
Ca me renvoie une erreur de table qui n'existe pas au niveau de req. Or cette table existe bel et bien.
Si j'execute la requete a part elle fonctionne bien d'ou mon incomprehension.
Merci de m'aider![]()
Partager