diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/OracleServerConfiguration.java b/hibernate-core/src/main/java/org/hibernate/dialect/OracleServerConfiguration.java index c378b732be12..3bed6d31b58e 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/OracleServerConfiguration.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/OracleServerConfiguration.java @@ -132,14 +132,13 @@ public static OracleServerConfiguration fromDialectResolutionInfo(DialectResolut } private static boolean isExtended(Statement statement) { - try ( final ResultSet resultSet = - statement.executeQuery( "select cast('string' as varchar2(32000)) from dual" ) ) { - resultSet.next(); - // succeeded, so MAX_STRING_SIZE == EXTENDED - return true; + try (final ResultSet resultSet = + statement.executeQuery( "select property_value from database_properties " + + "where property_name = 'MAX_STRING_SIZE'" )) { + return resultSet.next() + && "EXTENDED".equalsIgnoreCase( resultSet.getString( 1 ) ); } catch (SQLException ex) { - // failed, so MAX_STRING_SIZE == STANDARD, still need to check autonomous return false; } }