public StandardSQLTypeName convertOracleToBigQueryColumnType()

in v2/datastream-common/src/main/java/com/google/cloud/teleport/v2/datastream/utils/DataStreamClient.java [426:478]


  public StandardSQLTypeName convertOracleToBigQueryColumnType(OracleColumn column) {
    String dataType = column.getDataType();

    switch (dataType) {
      case "ANYDATA":
      case "BFILE":
      case "CHAR":
      case "CLOB":
      case "NCHAR":
      case "NCLOB":
      case "NVARCHAR2":
      case "ROWID":
      case "UDT":
      case "UROWID":
      case "VARCHAR":
      case "VARCHAR2":
      case "XMLTYPE":
        return StandardSQLTypeName.STRING;
      case "SMALLINT":
      case "INTEGER":
        return StandardSQLTypeName.INT64;
      case "BINARY DOUBLE":
      case "BINARY FLOAT":
      case "BINARY_DOUBLE":
      case "BINARY_FLOAT":
      case "FLOAT":
      case "REAL":
      case "DOUBLE":
        return StandardSQLTypeName.FLOAT64;
      case "DECIMAL":
      case "DOUBLE PRECISION":
      case "NUMBER":
        return StandardSQLTypeName.BIGNUMERIC;
      case "BLOB":
      case "RAW":
      case "LONG_RAW":
        return StandardSQLTypeName.BYTES;
      case "DATE":
        return StandardSQLTypeName.DATETIME;
      default:
    }

    if (TIMESTAMP_PATTERN.matcher(dataType).matches()) {
      return StandardSQLTypeName.TIMESTAMP;
    } else if (TIMESTAMP_WITH_TIMEZONE_PATTERN.matcher(dataType).matches()) {
      return StandardSQLTypeName.TIMESTAMP; // TODO: what type do we want here?
    } else if (TIMESTAMP_WITH_LOCAL_TIMEZONE_PATTERN.matcher(dataType).matches()) {
      return StandardSQLTypeName.TIMESTAMP; // TODO: what type do we want here?
    } else {
      LOG.warn("Datastream Oracle Type Unknown, Default to String: \"{}\"", dataType);
      return StandardSQLTypeName.STRING;
    }
  }