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;
});
}
}