Bonjour

J'ai un soucis au niveau de cette select ==> Message ORA-01722: Nombre non valide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT 'O' 
FROM  DUAL
WHERE TO_NUMBER(p_parametre1) > TO_NUMBER(p_parametre2);
Le problème :
le paramétre p_parametre2 contient (.) comme séparateur décimal, alors que ma base de gère pas ça

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT *
FROM v$nls_parameters
WHERE parameter='NLS_NUMERIC_CHARACTERS';  ==> VALUE  (,) (je ne souhaite pas faire l'update)
Je tente de me débloquer en remplaçant le Select ci-dessus par celle là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT 'O' 
FROM  DUAL
WHERE TO_NUMBER(p_parametre1) > TO_NUMBER(p_parametre2,'9999999999999D9999999999', 'nls_numeric_characters=.,');
----------------------------------
Cas de test 1 => p_parametre2 = 21500.00 devient 21500 OK
Cas de test 2 => p_parametre2 = 21500.33 devient 21500.33 OK
Cas de test 2 => p_parametre2 = 21500,33 devient 2150033 KO

Aidez moi s'il vous plait à résoudre le dernier point
Merci d'avance