Je voudrais savoir s’il est possible de créer un curseur dynamique
J’ai réussi à créer la requête dynamique, mais j’ai une erreur quand je tente d’appeler mon curseur,j’ai diffèrent message d’erreur .
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
34
35
36
37
38
39
40
41
42
43
 
DECLARE
---  
  l_code_pays    VARCHAR2(30);    
  l_type_pers    VARCHAR2(30); 
  l_nif          VARCHAR2(30); 
 -- teste          REF CURSOR;
  var_cursor     VARCHAR2(4000);
 
  BEGIN
  --
  l_code_pays := 'FR';
  l_nif       := '447 737 503';
  l_type_pers := 'PMO';
  --
  var_cursor := 'SELECT format
                    FROM nif_validation nv, 
                         nif_format nf
                   WHERE nv.code_pays = '''||l_code_pays||'''
                     AND nv.code_pays = nf.code_pays';
  --
   IF l_type_pers IS NOT NULL THEN
   --
      var_cursor:= var_cursor ||' AND nv.type_pers = '''||l_type_pers||'''';        
   --
   END IF;
   --
   IF l_nif IS NOT NULL THEN
   --
      var_cursor:= var_cursor ||' AND REGEXP_LIKE ('''||l_nif||''', nf.reg_expres)';     
   --
   END IF;
   --
  -- DBMS_OUTPUT.put_line ('var_cursor '|| var_cursor); 
  -- EXECUTE IMMEDIATE var_cursor INTO teste; 
   --
   FOR I IN 1.. var_cursor LOOP
   --
      BMS_OUTPUT.put_line ('HELLO' ); 
   --
   END LOOP;
-- 
 END;
Pouvez-vous m’aider a résoudre ce problème?

Merci