public void converterFor()

in flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/oracle/OracleDateConverter.java [75:113]


    public void converterFor(
            RelationalColumn column, ConverterRegistration<SchemaBuilder> registration) {
        String typeName = column.typeName();
        if (TIMESTAMP_OR_DATE_REGEX.matcher(typeName).matches()) {
            registration.register(
                    SchemaBuilder.string().optional(),
                    value -> {
                        if (value == null) {
                            if (column.isOptional()) {
                                return null;
                            } else if (column.hasDefaultValue()) {
                                return column.defaultValue();
                            } else {
                                return null;
                            }
                        }

                        if (value instanceof String) {
                            return convertStringTimestamp((String) value);
                        }
                        if (value instanceof Timestamp) {
                            return dateTimeV2Formatter.format(
                                    ((Timestamp) value).toLocalDateTime());
                        }

                        // oracle timestamp
                        try {
                            if (value instanceof TIMESTAMP) {
                                return dateTimeV2Formatter.format(
                                        ((TIMESTAMP) value).timestampValue().toLocalDateTime());
                            }
                        } catch (SQLException ex) {
                            log.error("convert timestamp failed, values is {}", value);
                        }

                        return null;
                    });
        }
    }