2009-07-20 18 views
26

Come faccio a convertire un valore Oracle varchar al numeroOracle varchar per numerare

esempio

table - exception 
exception_value 555 where exception_value is a varchar type 

vorrei testare il valore della colonna di exception_value

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

risposta

1

selezionare to_number (exception_value) dall'eccezione dove to_number (exception_value) = 105

34

Hai e utilizzare la funzione TO_NUMBER:

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

Dal momento che la colonna è di tipo VARCHAR, è necessario convertire il parametro di input una stringa piuttosto che convertire il valore della colonna in un numero:

select * from exception where exception_value = to_char(105); 
3

Se vogliono numero formattato quindi utilizzare

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

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

Risultato 123,00

0

Ho testato le soluzioni proposte, dovrebbero funzionare tutte:

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

=> fornisce uno manichino fila

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

=> risultati vuoto

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

=> fornisce uno manichino riga

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

=> risultato vuoto