diff --git a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala index 29d708d93c2..a2dc59bc6f3 100644 --- a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala +++ b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleSchemaHelper.scala @@ -25,7 +25,7 @@ class OracleSchemaHelper extends SchemaHelper { override protected def toTTypeDesc(sqlType: Int, precision: Int, scale: Int): TTypeDesc = { sqlType match { // case for int, returns NUMERIC type in Oracle JDBC - case Types.NUMERIC if scale == 0 => + case Types.NUMERIC if scale == 0 && (precision > 0 && precision <= 9) => super.toTTypeDesc(Types.INTEGER, precision, scale) // except for int case Types.NUMERIC => diff --git a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala index e3f38024570..b0fa8490601 100644 --- a/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala +++ b/externals/kyuubi-jdbc-engine/src/main/scala/org/apache/kyuubi/engine/jdbc/oracle/OracleTRowSetGenerator.scala @@ -34,9 +34,10 @@ class OracleTRowSetGenerator extends DefaultJdbcTRowSetGenerator { } override def getColumnType(schema: Seq[Column], ordinal: Int): Int = { - schema(ordinal).sqlType match { + val col = schema(ordinal) + col.sqlType match { // case for int, returns NUMERIC type in Oracle JDBC - case Types.NUMERIC if schema(ordinal).scale == 0 => + case Types.NUMERIC if col.scale == 0 && (col.precision > 0 && col.precision <= 9) => Types.INTEGER case Types.NUMERIC => Types.DECIMAL