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 :
Le problème est que je reçois toujours ce message d'erreur :
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) + '%'));
Je ne comprends pas pourquoi 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.
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.
Partager