protected Object readDefaultValue( CachedRow columnMetadataResultSet, Column columnInfo, Database database) throws SQLException, DatabaseException { if (database instanceof MSSQLDatabase) { Object defaultValue = columnMetadataResultSet.get("COLUMN_DEF"); if (defaultValue != null && defaultValue instanceof String) { if (defaultValue.equals("(NULL)")) { columnMetadataResultSet.set("COLUMN_DEF", null); } } } if (database instanceof OracleDatabase) { if (columnMetadataResultSet.get("COLUMN_DEF") == null) { columnMetadataResultSet.set("COLUMN_DEF", columnMetadataResultSet.get("DATA_DEFAULT")); if (columnMetadataResultSet.get("COLUMN_DEF") != null && ((String) columnMetadataResultSet.get("COLUMN_DEF")).equalsIgnoreCase("NULL")) { columnMetadataResultSet.set("COLUMN_DEF", null); } Object columnDef = columnMetadataResultSet.get("COLUMN_DEF"); if (columnInfo.getType().getTypeName().equalsIgnoreCase("CHAR") && columnDef instanceof String && !((String) columnDef).startsWith("'") && !((String) columnDef).endsWith("'")) { return new DatabaseFunction((String) columnDef); } if (columnMetadataResultSet.get("VIRTUAL_COLUMN").equals("YES")) { Object column_def = columnMetadataResultSet.get("COLUMN_DEF"); if (column_def != null && !column_def.equals("null")) { columnMetadataResultSet.set("COLUMN_DEF", "GENERATED ALWAYS AS (" + column_def + ")"); } } } } return SqlUtil.parseValue( database, columnMetadataResultSet.get("COLUMN_DEF"), columnInfo.getType()); }