Bonjour,

Depuis quelque temps j'essaie de coder une procédure qui me permet de parcourir diférentes lignes d'une colonne afin de réaliser un filtrage sur des caractères spéciaux. Pour cela je définis un curseur qui est censé a récupérer les différentes lignes d'une colonne pour appliquer ce filtre.

Le problème que j'ai c'est que le curseur obtient le nom de la colonne au lieu de son contenu. Pour tant, quand j'exécute sur un client sql le select associé au curseur, l'ensemble de lignes est retourné.

Voici partie de ma procédure:
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
 
PROCEDURE FiltrageInterne
    (       
     COLONNE Varchar2
     ,NOMTABLE Varchar2
     ) AS
    --PRAGMA AUTONOMOUS_TRANSACTION;     
    v_counter	    		   number:=0;
    v_commit_update      number:=0;
    v_colonneCommande_aux VARCHAR2(4000);
   	v_update_remplace 		VARCHAR2(4000);
    col                   Varchar(1000):=COLONNE;
    tab                    varchar2(100):=NOMTABLE;
    contenuColonne                 CLOB;
    CURSOR  selectCursor IS select col from tab;
    BEGIN    
    open selectCursor;
 
 
      loop
 
 	 DBMS_OUTPUT.PUT_LINE(col);
	 DBMS_OUTPUT.PUT_LINE(tab);
 
        fetch selectCursor into contenuColonne;
 
	 DBMS_OUTPUT.PUT_LINE(contenuColonne);
        DBMS_OUTPUT.PUT_LINE(DBMS_LOB.getlength(contenuColonne));
 
        v_commit_update:=v_commit_update+1;
        v_counter:=v_counter+1;
        v_colonneCommande_aux:=DBMS_LOB.SUBSTR(contenuColonne,4000,(4000*v_counter)+1);
 
          ...
La taille affiché est bien la taille de la colonne au lieu de son contenu.

Merci d'avance pour votre aide.