3. August 2010

Römische Zahlen mit der Datenbank ...

English title: Roman Numbers with TO_CHAR

Vor kurzem ist mir nochmals was "kurioses" aufgefallen. Wusstet Ihr schon, dass Ihr römische Zahlen mit der Datenbank generieren könnt ...?
Shortly I found another nice feature of the Oracle database. You can generate roman numbers with just the TO_CHAR function.
SQL> select to_char(1997, 'RN') roemisch from dual;

ROEMISCH
---------------
       MCMXCVII

1 Zeile wurde ausgewählt.
Es funktioniert leider nur mit Zahlen zwischen 1 und 3999 - also für Jahres- oder Monatszahlen. Aber für was anderes braucht man sie ja auch normalerweise nicht ...
It only works for numbers between 1 and 3999 - so its usable for years and months ... but this should be sufficient for most cases.
SQL> select to_char(4001, 'RN')  roemisch from dual;

ROEMISCH
---------------
###############

1 Zeile wurde ausgewählt.

Kommentare:

Kai hat gesagt…

Laut "Professioneller Einstieg in SQL und ORACLE" Copyright (c) 1994 ORACLE Deutschland GmbH, K100 - V3 12/94" (Klappentext SYSTEMINTEGRATION, SCHULUNG, ORACLE im DIN-A4-Format, sehr unhandlich, aber immer noch ein Standardwerk hier im Unternehmen) steht bei der TO_CHAR-Funktion außerdem 'RM' für Monatsangabe in römischen Ziffern zur Verfügung. Außerdem gibt es noch BC und AC für Datumsangaben vor und nach Christi Geburt. Die Sachen mit Zahlenwörtern funktionieren scheinbar leider nicht unter einem deutschen Oracle 11gR2.

Carsten Czarski hat gesagt…

Hallo Kai,

das ist richtig: Mit to_char generierte Zahlenwörter sind immer in Englisch, egal wie die NLS-Parameter eingestellt sind. Man muss sich da also anders helfen - sprich: eine eigene Funktion schreiben.

Grüße

-Carsten

Beliebte Postings