# DatabaseMetaData.getColumns -> DECIMAL_DIGITS



## stochr1100 (19. Mrz 2007)

Hallo!
Es scheint so, daß unter mySQL, MS-SQL, DB2 und unter Oracle mit bestimmten Treiber Bibliotheken DECIMAL_DIGITS immer 0 ist, auch wenn der Datenbanktyp Nachkommastellen besitzt.
Kennt jemand eine Lösung dieses Problems?


----------



## abollm (31. Mrz 2007)

Hast du einmal ein kleines Beispiel?

Dann ist das leichter, das nachzuvollziehen.


----------



## Guest (1. Apr 2007)

Du wirst für jede Datenbank eine solche Funktion schreiben und diese Informationen über die Metadaten 
der Datenbank abfragen müssen. Leider ist es so, dass viele Funktionen von JDBC von Treiber zu Treiber 
unterschiedlich implementiert sind, so dass man sich nie darauf verlassen kann.
Ein krasses Beispiel ist z.B. ParameterMetaData in PreparedStatement. Diese Funktion wird nicht mal vom 
JDBC-ODBC Treiber von Sun unterstützt. Frameworks wie Hibernate enthalten für jedes "unterstützte" 
RDBMS eine getrennte Implementierung, um dieses Problem umzugehen 
(z.B. OracleDialect, SQLServerDialect, MySQLDialect etc.)
Du schreibst eine Basisimplementierung, die über die Metadaten geht und für jedes RDBMS, das davon 
abweicht, eine spezielle Implementierung dieser Funktion von Hand.


----------

