Utilisation de REPLACE() dans un programme PL/SQL
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:
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