blackpighe created FLINK-34128:
----------------------------------

             Summary: oracle jdbc connector bug. When the oracle table field is 
of type float, the type obtained by jdbc is bigdecimal. error is  
'java.lang.ClassCastException: java.math.BigDecimal cannot be cast to 
java.lang.Float'
                 Key: FLINK-34128
                 URL: https://issues.apache.org/jira/browse/FLINK-34128
             Project: Flink
          Issue Type: Bug
          Components: Connectors / JDBC
    Affects Versions: jdbc-3.1.0, jdbc-3.0.0
         Environment: All current versions of flinks-jdbc-connector
            Reporter: blackpighe
             Fix For: jdbc-3.1.1, jdbc-3.0.0
         Attachments: image-2024-01-17-14-33-05-713.png

create oracle table contain float field and execute sql occurred error.

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to 
java.lang.Float

 

Locate the cause of the error:

org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java

!image-2024-01-17-14-33-05-713.png!

Object field = resultSet.getObject(pos + 1);

this method for oracle jdbc produce bug. 

expect:float value

actual: bigdecimal value

 

Suggest this modification:

Object field =
resultSet.getObject(pos + 1, rowType.getTypeAt(pos).getDefaultConversion());

Specify the type explicitly according to the schema.but mock test case is 
error.Let's talk about it and see what we can do about it.

 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to