From 223e55ee735a02d024887b802924fa6c48834db8 Mon Sep 17 00:00:00 2001 From: Mehdi Date: Thu, 9 Oct 2025 18:41:34 +0200 Subject: [PATCH] HHH-19852 Replace exception-based MAX_STRING_SIZE detection with direct query Query database_properties view directly instead of attempting a varchar2(32000) cast to determine if MAX_STRING_SIZE is EXTENDED. HHH-19852 fix condition HHH-19852 fix fomatting problem --- .../hibernate/dialect/OracleServerConfiguration.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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; } }