Cursor ne récupère lignes mais nom de la colonne
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:
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.