web-dev-qa-db-fra.com

varchar oracle au numéro

Comment convertir une valeur Oracle varchar en nombre

par exemple

table - exception
exception_value 555 where exception_value is a varchar type

Je voudrais tester la valeur de la colonne exception_value

select * from exception where exception_value = 105 instead of
select * from exception where exception_value = '105'
29
user141511

Vous devez utiliser la fonction TO_NUMBER :

select * from exception where exception_value = to_number('105')
38
FerranB

Étant donné que la colonne est de type VARCHAR, vous devez convertir le paramètre d'entrée en chaîne plutôt que de convertir la valeur de la colonne en nombre:

select * from exception where exception_value = to_char(105);
12
Tony Andrews

Si vous voulez un numéro formaté, utilisez

SELECT TO_CHAR(number, 'fmt')
   FROM DUAL;

SELECT TO_CHAR('123', 999.99)
   FROM DUAL;

Résultat 123,00

3
Arijit

J'ai testé les solutions proposées, elles devraient toutes fonctionner:

select * from dual where (105 = to_number('105'))

=> fournit une ligne factice

select * from dual where (10 = to_number('105'))

=> résultat vide

select * from dual where ('105' = to_char(105))

=> fournit une ligne factice

select * from dual where ('105' = to_char(10))

=> résultat vide

2
Andreas L.

sélectionnez to_number (exception_value) dans exception où to_number (exception_value) = 105

1
dpbradley