YMBSKLK commented on code in PR #4543:
URL: 
https://github.com/apache/incubator-seatunnel/pull/4543#discussion_r1162274069


##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/converter/AbstractJdbcRowConverter.java:
##########
@@ -125,60 +129,63 @@ public PreparedStatement toExternal(
                 continue;
             }
 
-            switch (seaTunnelDataType.getSqlType()) {
-                case STRING:
-                    statement.setString(statementIndex, (String) 
row.getField(fieldIndex));
-                    break;
-                case BOOLEAN:
-                    statement.setBoolean(statementIndex, (Boolean) 
row.getField(fieldIndex));
-                    break;
-                case TINYINT:
-                    statement.setByte(statementIndex, (Byte) 
row.getField(fieldIndex));
-                    break;
-                case SMALLINT:
-                    statement.setShort(statementIndex, (Short) 
row.getField(fieldIndex));
-                    break;
-                case INT:
-                    statement.setInt(statementIndex, (Integer) 
row.getField(fieldIndex));
-                    break;
-                case BIGINT:
-                    statement.setLong(statementIndex, (Long) 
row.getField(fieldIndex));
-                    break;
-                case FLOAT:
-                    statement.setFloat(statementIndex, (Float) 
row.getField(fieldIndex));
-                    break;
-                case DOUBLE:
-                    statement.setDouble(statementIndex, (Double) 
row.getField(fieldIndex));
-                    break;
-                case DECIMAL:
-                    statement.setBigDecimal(statementIndex, (BigDecimal) 
row.getField(fieldIndex));
-                    break;
-                case DATE:
-                    LocalDate localDate = (LocalDate) row.getField(fieldIndex);
-                    statement.setDate(statementIndex, 
java.sql.Date.valueOf(localDate));
-                    break;
-                case TIME:
-                    LocalTime localTime = (LocalTime) row.getField(fieldIndex);
-                    statement.setTime(statementIndex, 
java.sql.Time.valueOf(localTime));
-                    break;
-                case TIMESTAMP:
-                    LocalDateTime localDateTime = (LocalDateTime) 
row.getField(fieldIndex);
-                    statement.setTimestamp(
-                            statementIndex, 
java.sql.Timestamp.valueOf(localDateTime));
-                    break;
-                case BYTES:
-                    statement.setBytes(statementIndex, (byte[]) 
row.getField(fieldIndex));
-                    break;
-                case NULL:
-                    statement.setNull(statementIndex, java.sql.Types.NULL);
-                    break;
-                case MAP:
-                case ARRAY:
-                case ROW:
-                default:
-                    throw new JdbcConnectorException(
-                            CommonErrorCode.UNSUPPORTED_DATA_TYPE,
-                            "Unexpected value: " + seaTunnelDataType);
+            Object obj = row.getField(fieldIndex);

Review Comment:
   When the field content is empty, outputting to a relational database will 
throw an exception, so it is better to check if it is empty and set it to NULL 
directly.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to