Bonjour,

Le programme ci-dessous doit rechercher des caractères spéciaux suivant (&~"#{[|\"^""@"°]}¨¤£$%µ?/!§;+) dans les colonnes d'une table et les remplacer par des blancs le cas échéant.
Lorsque je l'exécute, j'ai l'erreur suivante :

ORA-01741: illegal zero-length identifier


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
DECLARE
v_update VARCHAR2(4000);
BEGIN      
FOR tab IN (SELECT table_name, column_name 
                FROM cols 
             WHERE table_name = 'TESTELISA'
                AND data_type LIKE '%CHAR%'
            ) 
LOOP
v_update := 'UPDATE '||tab.table_name||' SET '||tab.column_name||' = 
             REPLACE('||tab.column_name||', '&~"#{[|\"^""@"°]}¨¤£$%µ?/!§;+', '')';
 
EXECUTE IMMEDIATE v_update;
END LOOP;
END;
Comment faire ?

Balise code ajoutées par Orafrance, merci d'y penser à l'avenir