Bonjour tout le monde

Je suis nouvelle dans ce forum et ravie de partager avec vous les idées.
En fait, j'effectue un stage en qualité des données et je travaille avec la base de donnée Oracle. Je dois trouver des quasi-doublons dans une table.
J'ai cherché dans ce site et j'ai trouvé la syntaxe SQL suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT DISTINCT *
FROM T_doublons T1
WHERE EXISTS
(SELECT *
FROM T_doublons T2
WHERE T1.NUM <> T2.NUM
AND (LOWER(T1.NOM) LIKE '%' + LOWER(T2.NOM) + '%' OR LOWER(T2.NOM) LIKE '%' + LOWER(T1.NOM)+'%')
AND (LOWER(T1.PRENOM) LIKE '%' + LOWER(T2.PRENOM) + '%' OR LOWER(T2.PRENOM) LIKE '%' + LOWER(T1.PRENOM) + '%'));
Le problème est que je reçois toujours ce message d'erreur :
ORA-01722
invalid number

Cause: The attempted conversion of a character string to a number failed because the character string was not a valid numeric literal. Only numeric fields or character fields containing numeric data may be used in arithmetic functions or expressions. Only numeric fields may be added to or subtracted from dates.

Action: Check the character strings in the function or expression. Check that they contain only numbers, a sign, a decimal point, and the character "E" or "e" and retry the operation.
Je ne comprends pas pourquoi ce message d'erreur.
La fonction lower donne la chaîne entrée en paramètre en minuscule et ne la converti pas en nombre alors que le message fait référence à une conversion de nombre.
Je crois qu'il y a une erreur dans la syntaxe qui en est la cause, j'ai essayé de changer plusieurs fois la syntaxe mais je n'y arrive pas.

Si quelqu'un un peut m'aider j'en serai reconnaissante
Merci.