Package org.hibernate.dialect
Class Oracle9iDialect
java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.Oracle8iDialect
org.hibernate.dialect.Oracle9iDialect
- Direct Known Subclasses:
Oracle10gDialect
A dialect for Oracle 9i databases.
Unlike the older (deprecated)
Oracle9Dialect, this version specifies
to not use "ANSI join syntax" because 9i does not seem to properly
handle it in all cases.-
Field Summary
Fields inherited from class org.hibernate.dialect.Oracle8iDialect
DEPRECATED_ORACLE_TYPES_CLASS_NAME, INIT_ORACLETYPES_CURSOR_VALUE, ORACLE_TYPES_CLASS_NAMEFields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, NO_BATCH, QUOTE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionMap case support to the Oracle DECODE function.Retrieve the command used to retrieve the current timestamp from the database.The name of the database-specific SQL function for retrieving the current timestamp.Get the string to append to SELECT statements to acquire locks for this dialect.getLimitString(String sql, boolean hasOffset) Apply s limit clause to the query.getReadLockString(int timeout) Get the string to append to SELECT statements to acquire WRITE locks for this dialect.getSelectClauseNullString(int sqlType) Given aTypestype code, determine an appropriate null value to use in a select clause.getWriteLockString(int timeout) Get the string to append to SELECT statements to acquire WRITE locks for this dialect.protected voidprotected voidbooleanHHH-4907, I don't know if oracle 8 supports this syntax, so I'd think it is better add this method here.booleanDoes this dialect support `count(distinct a,b)`?Methods inherited from class org.hibernate.dialect.Oracle8iDialect
bindLimitParametersInReverseOrder, createOuterJoinFragment, dropConstraints, dropTemporaryTableAfterUse, extractOracleCursorTypeValue, forUpdateOfColumns, generateTemporaryTableName, getAddColumnString, getBasicSelectClauseNullString, getCascadeConstraintsString, getCreateSequenceString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCrossJoinSeparator, getDropSequenceString, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getOracleCursorTypeSqlType, getQuerySequencesString, getResultSet, getSelectGUIDString, getSelectSequenceNextValString, getSequenceNextValString, getViolatedConstraintNameExtracter, isCurrentTimestampSelectStringCallable, registerDefaultProperties, registerFunctions, registerLargeObjectTypeMappings, registerNumericTypeMappings, registerResultSetOutParameter, registerReverseHibernateTypeMappings, supportsCommentOn, supportsCurrentTimestampSelection, supportsEmptyInList, supportsExistsInSelect, supportsLimit, supportsPooledSequences, supportsSequences, supportsTemporaryTables, supportsUnionAll, useMaxForLimitMethods inherited from class org.hibernate.dialect.Dialect
addTypeOverride, appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, buildSQLExceptionConverter, closeQuote, convertToFirstRowValue, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, forceLimitUsage, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getDropTemporaryTableString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLockingStrategy, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getNullColumnString, getTableComment, getTableTypeString, getTypeName, getTypeName, getTypeOverrides, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isLockTimeoutParameterized, openQuote, performTemporaryTableDDLInIsolation, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsExpectedLobUsagePattern, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLimitOffset, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTupleCounts, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsVariableLimit, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob
-
Constructor Details
-
Oracle9iDialect
public Oracle9iDialect()
-
-
Method Details
-
registerCharacterTypeMappings
protected void registerCharacterTypeMappings()- Overrides:
registerCharacterTypeMappingsin classOracle8iDialect
-
registerDateTimeTypeMappings
protected void registerDateTimeTypeMappings()- Overrides:
registerDateTimeTypeMappingsin classOracle8iDialect
-
createCaseFragment
Description copied from class:Oracle8iDialectMap case support to the Oracle DECODE function. Oracle did not add support for CASE until 9i.- Overrides:
createCaseFragmentin classOracle8iDialect- Returns:
- The oracle CASE -> DECODE fragment
-
getLimitString
Description copied from class:DialectApply s limit clause to the query. Typically dialects utilizevariablelimit clauses when they support limits. Thus, when building the select command we do not actually need to know the limit or the offest since we will just be using placeholders. Here we do still pass along whether or not an offset was specified so that dialects not supporting offsets can generate proper exceptions. In general, dialects will override one or the other of this method andDialect.getLimitString(String, int, int).- Overrides:
getLimitStringin classOracle8iDialect- Parameters:
sql- The query to which to apply the limit.hasOffset- Is the query requesting an offset?- Returns:
- the modified SQL
-
getSelectClauseNullString
Description copied from class:DialectGiven aTypestype code, determine an appropriate null value to use in a select clause. One thing to consider here is that certain databases might require proper casting for the nulls here since the select here will be part of a UNION/UNION ALL.- Overrides:
getSelectClauseNullStringin classOracle8iDialect- Parameters:
sqlType- TheTypestype code.- Returns:
- The appropriate select clause value fragment.
-
getCurrentTimestampSelectString
Description copied from class:DialectRetrieve the command used to retrieve the current timestamp from the database.- Overrides:
getCurrentTimestampSelectStringin classOracle8iDialect- Returns:
- The command.
-
getCurrentTimestampSQLFunctionName
Description copied from class:DialectThe name of the database-specific SQL function for retrieving the current timestamp.- Overrides:
getCurrentTimestampSQLFunctionNamein classOracle8iDialect- Returns:
- The function name.
-
getForUpdateString
Description copied from class:DialectGet the string to append to SELECT statements to acquire locks for this dialect.- Overrides:
getForUpdateStringin classDialect- Returns:
- The appropriate FOR UPDATE clause string.
-
getWriteLockString
Description copied from class:DialectGet the string to append to SELECT statements to acquire WRITE locks for this dialect. Location of the of the returned string is treated the same as getForUpdateString.- Overrides:
getWriteLockStringin classDialect- Parameters:
timeout- in milliseconds, -1 for indefinite wait and 0 for no wait.- Returns:
- The appropriate LOCK clause string.
-
getReadLockString
Description copied from class:DialectGet the string to append to SELECT statements to acquire WRITE locks for this dialect. Location of the of the returned string is treated the same as getForUpdateString.- Overrides:
getReadLockStringin classDialect- Parameters:
timeout- in milliseconds, -1 for indefinite wait and 0 for no wait.- Returns:
- The appropriate LOCK clause string.
-
supportsRowValueConstructorSyntaxInInList
public boolean supportsRowValueConstructorSyntaxInInList()HHH-4907, I don't know if oracle 8 supports this syntax, so I'd think it is better add this method here. Reopen this issue if you found/know 8 supports it.- Overrides:
supportsRowValueConstructorSyntaxInInListin classDialect- Returns:
- True if this SQL dialect is known to support "row value constructor" syntax in the IN list; false otherwise.
-
supportsTupleDistinctCounts
public boolean supportsTupleDistinctCounts()Description copied from class:DialectDoes this dialect support `count(distinct a,b)`?- Overrides:
supportsTupleDistinctCountsin classDialect- Returns:
- True if the database supports counting disintct tuples; false otherwise.
-