webentwicklung-frage-antwort-db.com.de

Orakel Varchar zu nummerieren

Wie konvertiere ich einen Oracle-Varchar-Wert in Zahl

z.B

table - exception
exception_value 555 where exception_value is a varchar type

Ich möchte den Wert der Spalte exception_value testen

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

Sie müssen die Funktion TO_NUMBER verwenden:

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

Da die Spalte vom Typ VARCHAR ist, sollten Sie den Eingabeparameter in eine Zeichenfolge konvertieren, anstatt den Spaltenwert in eine Zahl zu konvertieren:

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

Wenn Sie eine formatierte Nummer wünschen, verwenden Sie

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

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

Ergebnis 123.00

3
Arijit

Ich habe die vorgeschlagenen Lösungen getestet, sie sollten alle funktionieren:

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

=> liefert eine Dummy-Zeile

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

=> leeres Ergebnis

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

=> liefert eine Dummy-Zeile

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

=> leeres Ergebnis

2
Andreas L.

wählen Sie to_number (exception_value) von exception aus, wobei to_number (exception_value) = 105

1
dpbradley