Oracle: Führende Leerzeichen bei to_char

21 11 2007

Es sollte ein numerisches Feld selektiert werden. Die enthaltenen Werte konnten maximal vierstellig sein. So weit so gut, mit to_char nicht wirklich ein Problem. Zur Illustrierung des Sachverhalts lege ich eine Tabelle mit ein paar Testdaten an.

SQL> CREATE TABLE testchar (nr number);
TABLE created.

SQL> INSERT INTO testchar VALUES (1);
1 row created.

SQL> INSERT INTO testchar VALUES (10);
1 row created.

SQL> INSERT INTO testchar VALUES (100);
1 row created.

SQL> INSERT INTO testchar VALUES (1000);
1 row created.

SQL> INSERT INTO testchar VALUES (-1);
1 row created.

SQL> SELECT to_char(nr, '0999') FROM testchar;

TO_CHAR(NR,'0999')
------------–
0001
0010
0100
1000
-0001

Wie in der Abfrage zu sehen ist, werden zu kleine Werte entsprechend mit führenden Nullen ausgegeben. Auch erkennt man allerdings ein Leerzeichen bei den positiven Werten. Dies ist ein Platzhalter für das Minuszeichen (-). Bei Abfragen wie der Folgenden, die zusammenhängend dargestellt werden sollen ist dies natürlich ein Problem.

SQL> SELECT '0000' || to_char(nr, '0999') FROM testchar;

'0000'||TO_CHAR(NR,'0999')
------------------------
0000 0001
0000 0010
0000 0100
0000 1000
0000-0001

Versteckt in den Tiefen der Oracle-Dokumentation findet sich glücklicherweise der Hinweis auf das Format “FM”, mit welchem ebendieses Leerzeichen verschwindet. Das Ergebnis sieht gleich sehr viel ansprechender aus.

SQL> SELECT '0000' || to_char(nr, 'FM0999') FROM testchar;

'0000'||TO_CHAR(NR,'FM0999')
------------------------
00000001
00000010
00000100
00001000
0000-0001
Advertisements

Aktionen

Information

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: