Bonjour à tous,

Je dois crééer plusieurs rapport expoter en Excell. Jusqu'à la pas de problème pour l'exportation mais j'aimerais pouvoir appeler une fonction en passant en paramètre le nom du champs que je dois extraire afin d'éviter de répéter toujours le même code pour chaque rapport.

Mon problème vient du fait que je n'arrive pas à joindre le contenu de ma variable au curseur de ma fonction.

La variable s'appelle v_field. dans laquelle est stocké le nom du champs

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
33
FUNCTION getRapport(schemalocal IN varchar2,  ???v_field )
RETURN  VARCHAR2 
IS
    c_data          CURSORTYPE;
    cur_rec         table.frm_steinert%ROWTYPE;
    
             
BEGIN

  v_curseur := 'SELECT * FROM '|| schemalocal ||'.frm_steinert ORDER BY patientid,dateconsultation';
  OPEN c_data FOR v_curseur;    
  FETCH c_data INTO cur_rec;

 WHILE (c_data % FOUND) LOOP
  -- Verifie si le patient est valide
  IF( utils.getValidPatient(schemalocal,cur_rec.patientid) = 'Y') THEN
    IF ( ???v_field IS NOT NULL ) THEN
    
      IF (v_cpt = 1) THEN
      
        v_date_debut := cur_rec.dateconsultation;
        v_date_visite := cur_rec.dateconsultation;
        v_s :=    utils.getpatientcode(schemalocal,cur_rec.patientid) ||tab;
      END IF;
    
      v_date := cur_rec.dateconsultation - v_date_visite;
      IF (v_date_visite = cur_rec.dateconsultation) THEN
          v_s1 :=  v_s1 ||  ???v_field ||tab;
      END IF;

  END IF;
  FETCH c_data INTO cur_rec; 
END LOOP;
L'appel de la fonction se fait ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
v_rapport       VARCHAR2(50) := 'paco2';
v_final := v_final || utils.getRapport(schemalocal,v_rapport);
L'endroit ou j'ai mis ???v_field devrait être normalement cur_rec. + le contenu de la variable v_field


Merci d'avance pour votre aide