private static DeserializationRuntimeConverter convertToTime() {
        return new DeserializationRuntimeConverter() {

            private static final long serialVersionUID = 1L;

            @Override
            public Object convert(Object dbzObj, Schema schema) {
                if (dbzObj instanceof Long && StringUtils.isNotBlank(schema.name())) {
                    // Because Oracle CDC has been shaded, the schema will have the prefix
                    // 'org.apache.inlong.sort.cdc.oracle.shaded' added,
                    // so we need to use `schemaName.endsWith()` to determine the Schema type.
                    String schemaName = schema.name();
                    if (schemaName.endsWith(MicroTime.SCHEMA_NAME)) {
                        return (int) ((long) dbzObj / 1000);
                    } else if (schemaName.endsWith(NanoTime.SCHEMA_NAME)) {
                        return (int) ((long) dbzObj / 1000_000);
                    }
                } else if (dbzObj instanceof Integer) {
                    return dbzObj;
                }
                // get number of milliseconds of the day
                return TemporalConversions.toLocalTime(dbzObj).toSecondOfDay() * 1000;
            }

            @Override
            public Object convert(Object dbzObj, Schema schema, TableChange tableSchema) throws Exception {
                return convert(dbzObj, schema);
            }
        };
    }
Returns a builder to build {@link RowDataDebeziumDeserializeSchema}.
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/oracle-cdc/src/main/java/org/apache/inlong/sort/cdc/oracle/debezium/table/RowDataDebeziumDeserializeSchema.java