Umwandeln von Text in Zahl

Vielleicht kennt der eine oder andere das Problem ja auch. Man möchte per SQL in Oracle ein wenig mit einem Feld rechnen und läuft ständig auf den Fehler

ORA-01722: Ungültige Zahl
01722. 00000 -  “invalid number”

Dabei fällt dann auf, dass es sich gar nicht um eine Zahl handelt, sondern um ein Textfeld. Und in diesem Textfeld sind Zahlen im Format “5.000″ geschrieben (also mit einem sogenannten Gruppentrennzeichen).

Die meisten werden jetzt sagen, dass man das schon zum Zeitpunkt des Datenbankdesigns bedenken sollte. Geschenkt. Das Kind ist in den Brunnen gefallen. :)

Um dennoch mit einer solchen Zahl rechnen zu können, wandelt man den Text einfach per SQL zur Laufzeit in eine Zahl um. Hier der entsprechende Code dazu:

SELECT TO_NUMBER( Textfeld,’999G999G999D99′) FROM Tabelle;

Hier nehme ich an, dass der Zahlenwert keine Milliarde groß ist (sonst einfach erweitern) und dass es sich um zwei Nachkommastellen handelt (diese kann man ebenso erweitern oder auch weglassen).

Was geht?

Mahlzeit zusammen!

Es war mal wieder an der Zeit, meine Homepage ein wenig zu ändern. Ich bin nun dazu übergegangen, einen Blog zu führen. Da ich zu faul bin, Tagebuch zu führen, kann ich hier wenigstens dann und wann ungefiltert meinen Senf zu den Geschehnissen in dieser Welt oder auch zu den Dingen, die mir persönlich widerfahren, abgeben.

An dieser Stelle möchte ich darauf hinweisen, dass ich keinerlei Anspruch auf Korrektheit (weder inhaltlich noch politisch!) erhebe.

Und noch was: Ironie, Satire, Zynismus und sehr schwarzer Humor können vorkommen. Deswegen sollte ich wohl dieses Schild hier reinkleistern:

PG