Class OracleLegacyDialect

java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.community.dialect.OracleLegacyDialect
All Implemented Interfaces:
org.hibernate.boot.model.FunctionContributor, org.hibernate.boot.model.TypeContributor, org.hibernate.exception.spi.ConversionContext
Direct Known Subclasses:
Oracle10gDialect, Oracle8iDialect, Oracle9iDialect

public class OracleLegacyDialect extends org.hibernate.dialect.Dialect
A SQL dialect for Oracle 8i and above.
  • Field Details

  • Constructor Details

    • OracleLegacyDialect

      public OracleLegacyDialect()
    • OracleLegacyDialect

      public OracleLegacyDialect(org.hibernate.dialect.DatabaseVersion version)
    • OracleLegacyDialect

      public OracleLegacyDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
  • Method Details

    • getPreferredSqlTypeCodeForBoolean

      public int getPreferredSqlTypeCodeForBoolean()
      Overrides:
      getPreferredSqlTypeCodeForBoolean in class org.hibernate.dialect.Dialect
    • initializeFunctionRegistry

      public void initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)
      Overrides:
      initializeFunctionRegistry in class org.hibernate.dialect.Dialect
    • getMaxVarcharLength

      public int getMaxVarcharLength()
      Overrides:
      getMaxVarcharLength in class org.hibernate.dialect.Dialect
    • getMaxVarbinaryLength

      public int getMaxVarbinaryLength()
      Overrides:
      getMaxVarbinaryLength in class org.hibernate.dialect.Dialect
    • getSqlAstTranslatorFactory

      public org.hibernate.sql.ast.SqlAstTranslatorFactory getSqlAstTranslatorFactory()
      Overrides:
      getSqlAstTranslatorFactory in class org.hibernate.dialect.Dialect
    • currentDate

      public String currentDate()
      Overrides:
      currentDate in class org.hibernate.dialect.Dialect
    • currentTime

      public String currentTime()
      Overrides:
      currentTime in class org.hibernate.dialect.Dialect
    • currentTimestamp

      public String currentTimestamp()
      Overrides:
      currentTimestamp in class org.hibernate.dialect.Dialect
    • currentLocalTime

      public String currentLocalTime()
      Overrides:
      currentLocalTime in class org.hibernate.dialect.Dialect
    • currentLocalTimestamp

      public String currentLocalTimestamp()
      Overrides:
      currentLocalTimestamp in class org.hibernate.dialect.Dialect
    • currentTimestampWithTimeZone

      public String currentTimestampWithTimeZone()
      Overrides:
      currentTimestampWithTimeZone in class org.hibernate.dialect.Dialect
    • supportsInsertReturningGeneratedKeys

      public boolean supportsInsertReturningGeneratedKeys()
      Overrides:
      supportsInsertReturningGeneratedKeys in class org.hibernate.dialect.Dialect
    • castPattern

      public String castPattern(org.hibernate.query.sqm.CastType from, org.hibernate.query.sqm.CastType to)
      Oracle doesn't have any sort of Types.BOOLEAN type or Types.TIME type, and its default behavior for casting dates and timestamps to and from strings is just awful.
      Overrides:
      castPattern in class org.hibernate.dialect.Dialect
    • getFractionalSecondPrecisionInNanos

      public long getFractionalSecondPrecisionInNanos()
      We minimize multiplicative factors by using seconds (with fractional part) as the "native" precision for duration arithmetic.
      Overrides:
      getFractionalSecondPrecisionInNanos in class org.hibernate.dialect.Dialect
    • extractPattern

      public String extractPattern(org.hibernate.query.sqm.TemporalUnit unit)
      Oracle supports a limited list of temporal fields in the extract() function, but we can emulate some of them by using to_char() with a format string instead of extract(). Thus, the additional supported fields are TemporalUnit.DAY_OF_YEAR, TemporalUnit.DAY_OF_MONTH, TemporalUnit.DAY_OF_YEAR, and TemporalUnit.WEEK.
      Overrides:
      extractPattern in class org.hibernate.dialect.Dialect
    • timestampaddPattern

      public String timestampaddPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType temporalType, org.hibernate.query.sqm.IntervalType intervalType)
      Overrides:
      timestampaddPattern in class org.hibernate.dialect.Dialect
    • timestampdiffPattern

      public String timestampdiffPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType)
      Overrides:
      timestampdiffPattern in class org.hibernate.dialect.Dialect
    • columnType

      protected String columnType(int sqlTypeCode)
      Overrides:
      columnType in class org.hibernate.dialect.Dialect
    • registerColumnTypes

      protected void registerColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Overrides:
      registerColumnTypes in class org.hibernate.dialect.Dialect
    • getTimeZoneSupport

      public org.hibernate.dialect.TimeZoneSupport getTimeZoneSupport()
      Overrides:
      getTimeZoneSupport in class org.hibernate.dialect.Dialect
    • initDefaultProperties

      protected void initDefaultProperties()
      Overrides:
      initDefaultProperties in class org.hibernate.dialect.Dialect
    • getDefaultStatementBatchSize

      public int getDefaultStatementBatchSize()
      Overrides:
      getDefaultStatementBatchSize in class org.hibernate.dialect.Dialect
    • getDefaultUseGetGeneratedKeys

      public boolean getDefaultUseGetGeneratedKeys()
      Overrides:
      getDefaultUseGetGeneratedKeys in class org.hibernate.dialect.Dialect
    • resolveSqlTypeDescriptor

      public org.hibernate.type.descriptor.jdbc.JdbcType resolveSqlTypeDescriptor(String columnTypeName, int jdbcTypeCode, int precision, int scale, org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry jdbcTypeRegistry)
      Overrides:
      resolveSqlTypeDescriptor in class org.hibernate.dialect.Dialect
    • supportsBitType

      public boolean supportsBitType()
      Oracle has neither BIT nor BOOLEAN.
      Overrides:
      supportsBitType in class org.hibernate.dialect.Dialect
      Returns:
      false
    • getArrayTypeName

      public String getArrayTypeName(String javaElementTypeName, String elementTypeName, Integer maxLength)
      Overrides:
      getArrayTypeName in class org.hibernate.dialect.Dialect
    • getPreferredSqlTypeCodeForArray

      public int getPreferredSqlTypeCodeForArray()
      Overrides:
      getPreferredSqlTypeCodeForArray in class org.hibernate.dialect.Dialect
    • contributeTypes

      public void contributeTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Overrides:
      contributeTypes in class org.hibernate.dialect.Dialect
    • getAggregateSupport

      public org.hibernate.dialect.aggregate.AggregateSupport getAggregateSupport()
      Overrides:
      getAggregateSupport in class org.hibernate.dialect.Dialect
    • getNativeIdentifierGeneratorStrategy

      public String getNativeIdentifierGeneratorStrategy()
      Overrides:
      getNativeIdentifierGeneratorStrategy in class org.hibernate.dialect.Dialect
    • getIdentityColumnSupport

      public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()
      Overrides:
      getIdentityColumnSupport in class org.hibernate.dialect.Dialect
    • getLimitHandler

      public org.hibernate.dialect.pagination.LimitHandler getLimitHandler()
      Overrides:
      getLimitHandler in class org.hibernate.dialect.Dialect
    • getSelectClauseNullString

      public String getSelectClauseNullString(int sqlType, org.hibernate.type.spi.TypeConfiguration typeConfiguration)
      Overrides:
      getSelectClauseNullString in class org.hibernate.dialect.Dialect
    • getCurrentTimestampSelectString

      public String getCurrentTimestampSelectString()
      Overrides:
      getCurrentTimestampSelectString in class org.hibernate.dialect.Dialect
    • getAddColumnString

      public String getAddColumnString()
      Overrides:
      getAddColumnString in class org.hibernate.dialect.Dialect
    • getCascadeConstraintsString

      public String getCascadeConstraintsString()
      Overrides:
      getCascadeConstraintsString in class org.hibernate.dialect.Dialect
    • dropConstraints

      public boolean dropConstraints()
      Overrides:
      dropConstraints in class org.hibernate.dialect.Dialect
    • getSequenceSupport

      public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()
      Overrides:
      getSequenceSupport in class org.hibernate.dialect.Dialect
    • getQuerySequencesString

      public String getQuerySequencesString()
      Overrides:
      getQuerySequencesString in class org.hibernate.dialect.Dialect
    • getSequenceInformationExtractor

      public org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor getSequenceInformationExtractor()
      Overrides:
      getSequenceInformationExtractor in class org.hibernate.dialect.Dialect
    • getSelectGUIDString

      public String getSelectGUIDString()
      Overrides:
      getSelectGUIDString in class org.hibernate.dialect.Dialect
    • getViolatedConstraintNameExtractor

      public org.hibernate.exception.spi.ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()
      Specified by:
      getViolatedConstraintNameExtractor in interface org.hibernate.exception.spi.ConversionContext
      Overrides:
      getViolatedConstraintNameExtractor in class org.hibernate.dialect.Dialect
    • buildSQLExceptionConversionDelegate

      public org.hibernate.exception.spi.SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()
      Overrides:
      buildSQLExceptionConversionDelegate in class org.hibernate.dialect.Dialect
    • registerResultSetOutParameter

      public int registerResultSetOutParameter(CallableStatement statement, int col) throws SQLException
      Overrides:
      registerResultSetOutParameter in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • getResultSet

      public ResultSet getResultSet(CallableStatement ps) throws SQLException
      Overrides:
      getResultSet in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • supportsCommentOn

      public boolean supportsCommentOn()
      Overrides:
      supportsCommentOn in class org.hibernate.dialect.Dialect
    • supportsCurrentTimestampSelection

      public boolean supportsCurrentTimestampSelection()
      Overrides:
      supportsCurrentTimestampSelection in class org.hibernate.dialect.Dialect
    • isCurrentTimestampSelectStringCallable

      public boolean isCurrentTimestampSelectStringCallable()
      Overrides:
      isCurrentTimestampSelectStringCallable in class org.hibernate.dialect.Dialect
    • supportsExistsInSelect

      public boolean supportsExistsInSelect()
      Overrides:
      supportsExistsInSelect in class org.hibernate.dialect.Dialect
    • getInExpressionCountLimit

      public int getInExpressionCountLimit()
      Overrides:
      getInExpressionCountLimit in class org.hibernate.dialect.Dialect
    • forceLobAsLastValue

      public boolean forceLobAsLastValue()
      Overrides:
      forceLobAsLastValue in class org.hibernate.dialect.Dialect
    • isEmptyStringTreatedAsNull

      public boolean isEmptyStringTreatedAsNull()
      Overrides:
      isEmptyStringTreatedAsNull in class org.hibernate.dialect.Dialect
    • getFallbackSqmMutationStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmMutationStrategy in class org.hibernate.dialect.Dialect
    • getFallbackSqmInsertStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmInsertStrategy in class org.hibernate.dialect.Dialect
    • getSupportedTemporaryTableKind

      public org.hibernate.dialect.temptable.TemporaryTableKind getSupportedTemporaryTableKind()
      Overrides:
      getSupportedTemporaryTableKind in class org.hibernate.dialect.Dialect
    • getTemporaryTableCreateOptions

      public String getTemporaryTableCreateOptions()
      Overrides:
      getTemporaryTableCreateOptions in class org.hibernate.dialect.Dialect
    • useFollowOnLocking

      public boolean useFollowOnLocking(String sql, org.hibernate.query.spi.QueryOptions queryOptions)
      For Oracle, the FOR UPDATE clause cannot be applied when using ORDER BY, DISTINCT or views.
      Overrides:
      useFollowOnLocking in class org.hibernate.dialect.Dialect
      See Also:
    • getQueryHintString

      public String getQueryHintString(String sql, String hints)
      Overrides:
      getQueryHintString in class org.hibernate.dialect.Dialect
    • getMaxAliasLength

      public int getMaxAliasLength()
      Overrides:
      getMaxAliasLength in class org.hibernate.dialect.Dialect
    • getMaxIdentifierLength

      public int getMaxIdentifierLength()
      Overrides:
      getMaxIdentifierLength in class org.hibernate.dialect.Dialect
    • getDefaultTimestampPrecision

      public int getDefaultTimestampPrecision()
      Overrides:
      getDefaultTimestampPrecision in class org.hibernate.dialect.Dialect
    • getCallableStatementSupport

      public org.hibernate.procedure.spi.CallableStatementSupport getCallableStatementSupport()
      Overrides:
      getCallableStatementSupport in class org.hibernate.dialect.Dialect
    • canCreateSchema

      public boolean canCreateSchema()
      Overrides:
      canCreateSchema in class org.hibernate.dialect.Dialect
    • getCurrentSchemaCommand

      public String getCurrentSchemaCommand()
      Overrides:
      getCurrentSchemaCommand in class org.hibernate.dialect.Dialect
    • supportsPartitionBy

      public boolean supportsPartitionBy()
      Overrides:
      supportsPartitionBy in class org.hibernate.dialect.Dialect
    • supportsTupleDistinctCounts

      public boolean supportsTupleDistinctCounts()
      Overrides:
      supportsTupleDistinctCounts in class org.hibernate.dialect.Dialect
    • supportsOffsetInSubquery

      public boolean supportsOffsetInSubquery()
      Overrides:
      supportsOffsetInSubquery in class org.hibernate.dialect.Dialect
    • supportsFetchClause

      public boolean supportsFetchClause(org.hibernate.query.sqm.FetchClauseType type)
      Overrides:
      supportsFetchClause in class org.hibernate.dialect.Dialect
    • supportsWindowFunctions

      public boolean supportsWindowFunctions()
      Overrides:
      supportsWindowFunctions in class org.hibernate.dialect.Dialect
    • supportsRecursiveCTE

      public boolean supportsRecursiveCTE()
      Overrides:
      supportsRecursiveCTE in class org.hibernate.dialect.Dialect
    • supportsLateral

      public boolean supportsLateral()
      Overrides:
      supportsLateral in class org.hibernate.dialect.Dialect
    • supportsNoWait

      public boolean supportsNoWait()
      Overrides:
      supportsNoWait in class org.hibernate.dialect.Dialect
    • supportsSkipLocked

      public boolean supportsSkipLocked()
      Overrides:
      supportsSkipLocked in class org.hibernate.dialect.Dialect
    • getWriteRowLockStrategy

      public org.hibernate.dialect.RowLockStrategy getWriteRowLockStrategy()
      Overrides:
      getWriteRowLockStrategy in class org.hibernate.dialect.Dialect
    • getForUpdateNowaitString

      public String getForUpdateNowaitString()
      Overrides:
      getForUpdateNowaitString in class org.hibernate.dialect.Dialect
    • getForUpdateString

      public String getForUpdateString(String aliases)
      Overrides:
      getForUpdateString in class org.hibernate.dialect.Dialect
    • getForUpdateNowaitString

      public String getForUpdateNowaitString(String aliases)
      Overrides:
      getForUpdateNowaitString in class org.hibernate.dialect.Dialect
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString()
      Overrides:
      getForUpdateSkipLockedString in class org.hibernate.dialect.Dialect
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString(String aliases)
      Overrides:
      getForUpdateSkipLockedString in class org.hibernate.dialect.Dialect
    • getWriteLockString

      public String getWriteLockString(int timeout)
      Overrides:
      getWriteLockString in class org.hibernate.dialect.Dialect
    • getWriteLockString

      public String getWriteLockString(String aliases, int timeout)
      Overrides:
      getWriteLockString in class org.hibernate.dialect.Dialect
    • getReadLockString

      public String getReadLockString(int timeout)
      Overrides:
      getReadLockString in class org.hibernate.dialect.Dialect
    • getReadLockString

      public String getReadLockString(String aliases, int timeout)
      Overrides:
      getReadLockString in class org.hibernate.dialect.Dialect
    • supportsTemporalLiteralOffset

      public boolean supportsTemporalLiteralOffset()
      Overrides:
      supportsTemporalLiteralOffset in class org.hibernate.dialect.Dialect
    • appendDateTimeLiteral

      public void appendDateTimeLiteral(org.hibernate.sql.ast.spi.SqlAppender appender, TemporalAccessor temporalAccessor, TemporalType precision, TimeZone jdbcTimeZone)
      Overrides:
      appendDateTimeLiteral in class org.hibernate.dialect.Dialect
    • appendDatetimeFormat

      public void appendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)
      Overrides:
      appendDatetimeFormat in class org.hibernate.dialect.Dialect
    • datetimeFormat

      public static org.hibernate.dialect.Replacer datetimeFormat(String format, boolean useFm, boolean resetFm)
    • appendBinaryLiteral

      public void appendBinaryLiteral(org.hibernate.sql.ast.spi.SqlAppender appender, byte[] bytes)
      Overrides:
      appendBinaryLiteral in class org.hibernate.dialect.Dialect
    • getResultSet

      public ResultSet getResultSet(CallableStatement statement, int position) throws SQLException
      Overrides:
      getResultSet in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • registerResultSetOutParameter

      public int registerResultSetOutParameter(CallableStatement statement, String name) throws SQLException
      Overrides:
      registerResultSetOutParameter in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • supportsNamedParameters

      public boolean supportsNamedParameters(DatabaseMetaData databaseMetaData)
      Overrides:
      supportsNamedParameters in class org.hibernate.dialect.Dialect
    • getResultSet

      public ResultSet getResultSet(CallableStatement statement, String name) throws SQLException
      Overrides:
      getResultSet in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • generatedAs

      public String generatedAs(String generatedAs)
      Overrides:
      generatedAs in class org.hibernate.dialect.Dialect
    • buildIdentifierHelper

      public org.hibernate.engine.jdbc.env.spi.IdentifierHelper buildIdentifierHelper(org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) throws SQLException
      Overrides:
      buildIdentifierHelper in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • canDisableConstraints

      public boolean canDisableConstraints()
      Overrides:
      canDisableConstraints in class org.hibernate.dialect.Dialect
    • getDisableConstraintStatement

      public String getDisableConstraintStatement(String tableName, String name)
      Overrides:
      getDisableConstraintStatement in class org.hibernate.dialect.Dialect
    • getEnableConstraintStatement

      public String getEnableConstraintStatement(String tableName, String name)
      Overrides:
      getEnableConstraintStatement in class org.hibernate.dialect.Dialect
    • getUniqueDelegate

      public org.hibernate.dialect.unique.UniqueDelegate getUniqueDelegate()
      Overrides:
      getUniqueDelegate in class org.hibernate.dialect.Dialect
    • getCreateUserDefinedTypeKindString

      public String getCreateUserDefinedTypeKindString()
      Overrides:
      getCreateUserDefinedTypeKindString in class org.hibernate.dialect.Dialect
    • rowId

      public String rowId(String rowId)
      Overrides:
      rowId in class org.hibernate.dialect.Dialect
    • getDmlTargetColumnQualifierSupport

      public org.hibernate.dialect.DmlTargetColumnQualifierSupport getDmlTargetColumnQualifierSupport()
      Overrides:
      getDmlTargetColumnQualifierSupport in class org.hibernate.dialect.Dialect
    • supportsFromClauseInUpdate

      public boolean supportsFromClauseInUpdate()
      Overrides:
      supportsFromClauseInUpdate in class org.hibernate.dialect.Dialect