public static Map<String, String> getType(@Nullable TableChanges.TableChange tableSchema) {
        if (tableSchema == null) {
            return null;
        }
        Map<String, String> oracleType = new LinkedHashMap<>();
        final Table table = tableSchema.getTable();
        for (Column column : table.columns()) {
            // The typeName contains precision and does not need to be formatted.
            if (column.typeName().matches(REGEX_FORMATTED)) {
                oracleType.put(column.name(), column.typeName());
                continue;
            }
            if (column.scale().isPresent()) {
                oracleType.put(
                        column.name(),
                        String.format(FORMAT_PRECISION_SCALE,
                                column.typeName(), column.length(), column.scale().get()));
            } else {
                oracleType.put(
                        column.name(),
                        String.format(FORMAT_PRECISION, column.typeName(), column.length()));
            }
        }
        return oracleType;
    }
get a map about column name and type
@param tableSchema
@return map of field name and field type
inlong-sort/sort-flink/cdc-base/src/main/java/org/apache/inlong/sort/cdc/base/util/MetaDataUtil.java