Skip to content

Commit 89dfaef

Browse files
Allow getScale to return 0 for NUMBER
1 parent 8c9c61c commit 89dfaef

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/main/java/oracle/r2dbc/impl/OracleReadableMetadataImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,12 @@ static ColumnMetadata createColumnMetadata(
296296
Nullability nullability = getNullability(fromJdbc(() ->
297297
resultSetMetaData.isNullable(jdbcIndex)));
298298

299+
if (type == R2dbcType.NUMERIC) {
300+
// For NUMBER, allow the scale to be 0
301+
return new OracleColumnMetadataImpl(type, name, nullability,
302+
fromJdbc(() -> resultSetMetaData.getPrecision(jdbcIndex)),
303+
fromJdbc(() -> resultSetMetaData.getScale(jdbcIndex)));
304+
}
299305
if (type == R2dbcType.BLOB
300306
|| type == R2dbcType.CLOB
301307
|| type == R2dbcType.NCLOB

src/test/java/oracle/r2dbc/impl/OracleReadableMetadataImplTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,11 @@ public void testNumericTypes() {
158158
connection, "NUMBER(5,3)", JDBCType.NUMERIC, R2dbcType.NUMERIC, 5, 3,
159159
BigDecimal.class, BigDecimal.valueOf(12.345));
160160

161+
// Expect getScale() to return 0 for NUMBER .
162+
verifyColumnMetadata(
163+
connection, "NUMBER(5,0)", JDBCType.NUMERIC, R2dbcType.NUMERIC, 5, 0,
164+
BigDecimal.class, BigDecimal.valueOf(12345));
165+
161166
// Expect FLOAT and Double to map.
162167
verifyColumnMetadata(
163168
connection, "FLOAT(6)", JDBCType.FLOAT, R2dbcType.FLOAT, 6, null,

0 commit comments

Comments
 (0)