2017-09-06 2 views
0

J'ai créé une colonne dans une table dans mon DB Oracle de type NUMBER mais en créant cette colonne, j'ai laissé la précision et l'échelle vide.Oracle DB retournant échelle négative et 0 précision en utilisant JDBC

Lorsque j'utilisais la classe ResultSetMetadata de java.sql pour obtenir les informations sur les colonnes, je me suis rendu compte que la précision de la colonne était 0 et que l'échelle était -127.

Les docs Oracle disent que

L'absence d'indicateurs de précision et échelle précise la portée maximale et précision pour un numéro Oracle.

Mais qu'est-ce que cela signifie dans ce cas? Comment la précision renvoyée est-elle égale à 0 et l'échelle à un nombre négatif?

Dois-je obtenir l'échelle et la précision d'une manière différente?

+1

Lié (éventuellement en double): https://stackoverflow.com/questions/1410267/oracle-resultsetmetadata-getprecision-getscale?rq=1 et https://stackoverflow.com/questions/593197/what-is-the -default-precision-and-scale-for-a-number-in-oracle? rq = 1 –

+0

Merci! Cela jette une certaine lumière sur la question, mais je suis encore confus quant à la raison pour laquelle l'échelle retournée est -127. – aBrokenSniper

+1

Pour autant que je sache, Oracle utilise -127 comme un signal que ce n'est pas une échelle normale, mais a une signification particulière. –

Répondre

1

Oracle renvoie -127 lorsque l'échelle n'est pas spécifiée. Ceci est mentionné dans le: JavaDoc.