- java.lang.Object
-
- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
- org.eclipse.persistence.platform.database.DatabasePlatform
-
- org.eclipse.persistence.platform.database.OraclePlatform
-
- org.eclipse.persistence.platform.database.oracle.Oracle8Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle9Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle10Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle11Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle12Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle18Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle19Platform
-
- org.eclipse.persistence.platform.database.oracle.Oracle21Platform
-
- All Implemented Interfaces:
Serializable,Cloneable,org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>,org.eclipse.persistence.internal.databaseaccess.Platform,DDLPlatform
- Direct Known Subclasses:
Oracle23Platform
public class Oracle21Platform extends Oracle19Platform
Purpose: Supports certain new Oracle 21c data types, and usage of certain Oracle JDBC specific APIs.
Supports Oracle JSON data type.
Supports Oracle OracleJsonValue derived Java types.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.persistence.platform.database.oracle.Oracle9Platform
Oracle9Platform.NTypeBindCallCustomParameter
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.platform.database.oracle.Oracle9Platform
driverVersion, isConnectionDataInitialized, isLtzTimestampInGmt, isTimestampInGmt, NCHAR, NCLOB, NSTRING, shouldPrintCalendar, shouldTruncateDate, XMLTYPE
-
Fields inherited from class org.eclipse.persistence.platform.database.oracle.Oracle8Platform
lobValueLimits, usesLocatorForLOBWrite
-
Fields inherited from class org.eclipse.persistence.platform.database.OraclePlatform
BRACKET_END, END_FROM, END_FROM_ID, FROM, FROM_ID, HINT_END, HINT_START, LOCK_END, LOCK_START_PREFIX, LOCK_START_PREFIX_WHERE, LOCK_START_SUFFIX, MAX_ROW, MIN_ROW, ORDER_BY_ID, SELECT, SELECT_ID_PREFIX, SELECT_ID_SUFFIX, shouldPrintForUpdateClause, supportsIdentity, vpdClearIdentifierQuery, vpdSetIdentifierQuery
-
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZE
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
batchWritingMechanism, castSizeForVarcharParameter, classTypes, cursorCode, DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, driverName, driverSupportsNationalCharacterVarying, fieldTypes, IS_VALID_TIMEOUT, isCastRequired, maxBatchWritingSize, partitioningCallback, pingSQL, printInnerJoinInWhereClause, printOuterJoinInWhereClause, shouldBindAllParameters, shouldBindLiterals, shouldBindPartialParameters, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, storedProcedureTerminationToken, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, useJDBCStoredProcedureSyntax, useNationalCharacterVarying, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBinding
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery, uuidQuery
-
Fields inherited from interface org.eclipse.persistence.tools.schemaframework.DDLPlatform
CLASS_TYPES, DB_TYPES, TYPE_BIG_DECIMAL, TYPE_BIG_INTEGER, TYPE_BLOB, TYPE_BOOLEAN, TYPE_BYTE, TYPE_CHAR, TYPE_CLOB, TYPE_DATE, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_SHORT, TYPE_TIME, TYPE_TIMESTAMP, TYPE_VARCHAR
-
-
Constructor Summary
Constructors Constructor Description Oracle21Platform()Creates an instance of Oracle 21c database platform.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Map<String,Class<?>>buildClassTypes()Build the mapping of Oracle 21c database types to class types for the schema framework.protected Hashtable<Class<?>,org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition>buildFieldTypes()Build the mapping of class types to Oracle 21c database types for the schema framework.<T> TconvertObject(Object sourceObject, Class<T> javaClass, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL: Allow for conversion from the Oracle type to the Java type.booleanisOracle21()INTERNAL: Check whether current platform is Oracle 21c or later.voidsetParameterValueInDatabaseCall(Object parameter, CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL Set the parameter in the JDBC statement at the given index.voidsetParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session)INTERNAL Set the parameter in the JDBC statement at the given index.-
Methods inherited from class org.eclipse.persistence.platform.database.oracle.Oracle12Platform
createStruct, createStruct, getUUIDQuery, initIdentitySequences, isOracle12, printFieldIdentityClause, removeIdentitySequences
-
Methods inherited from class org.eclipse.persistence.platform.database.oracle.Oracle10Platform
buildFirstRowsHint, canBatchWriteWithOptimisticLocking, executeBatch, isNativeConnectionRequiredForLobLocator
-
Methods inherited from class org.eclipse.persistence.platform.database.oracle.Oracle9Platform
addBatch, appendCalendar, appendTimestamp, buildFromStringCharVec, buildToNClobVec, buildToNStringCharVec, buildToTIMESTAMPVec, canUnwrapOracleConnection, clearConnectionData, clearOracleConnectionCache, clone, convertObject, copyInto, createConnectionCustomizer, getConnectionUserName, getCustomModifyValueForCall, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDriverVersion, getJDBCType, getJDBCTypeForSetNull, getLobValueLimits, getObjectFromResultSet, getTimestampFromServer, getTIMESTAMPLTZFromResultSet, getTimestampQuery, getTIMESTAMPTZFromResultSet, getXMLTypeFactory, initializeConnectionData, initializePlatformOperators, isClob, isLtzTimestampInGmt, isOracle9, isOracle9Specific, isTimestampInGmt, isXDBDocument, prepareBatchStatement, serverTimestampString, setLobValueLimits, setShouldTruncateDate, shouldTruncateDate, shouldUseCustomModifyForCall, supportsConnectionUserName, unwrapOracleConnection
-
Methods inherited from class org.eclipse.persistence.platform.database.oracle.Oracle8Platform
createArray, freeTemporaryObject, getConnection, getRefValue, isBlob, lobValueExceedsLimit, setShouldUseLocatorForLOBWrite, shouldUseLocatorForLOBWrite, writeLOB
-
Methods inherited from class org.eclipse.persistence.platform.database.OraclePlatform
allowsSizeInProcedureArguments, appendByteArray, appendDate, appendTime, buildCallWithReturning, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, canBuildCallWithReturning, checkTableExists, createExpressionFor, exceptOperator, getAssignmentString, getBatchBeginString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getDeclareBeginString, getDropCascadeString, getDropDatabaseSchemaString, getINClauseLimit, getMaxFieldNameSize, getNativeTableInfo, getProcedureArgument, getProcedureCallHeader, getProcedureCallTail, getSelectForUpdateString, getSelectForUpdateWaitString, getStoredProcedureParameterPrefix, getSystemChangeNumberQuery, getTableExistsQuery, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, isAlterSequenceObjectSupported, isForUpdateCompatibleWithDistinct, isLobCompatibleWithDistinct, isLockTimeoutException, isOracle, isRowCountOutputParameterRequired, logOperator, maximumNumericValues, minimumNumericValues, operatorLocate, operatorLocate2, operatorOuterJoin, oracleDateName, printFieldNullClause, printSQLSelectStatement, regexpOperator, setSupportsIdentity, shouldPrintForUpdateClause, shouldPrintStoredProcedureArgumentNameInCall, shouldUseJDBCOuterJoinSyntax, supportsAutoConversionToNumericForArithmeticOperations, supportsIdentity, supportsSelectForUpdateNoWait, supportsSequenceObjects, supportsStoredFunctions, supportsVPD, supportsWaitForUpdate, useJDBCStoredProcedureSyntax, wasFailureCommunicationBased
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addStructConverter, allowBindingForSelectClause, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCreateIndex, buildDropIndex, buildProcedureCallString, checkSequenceExists, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, createArray, createPlatformDefaultSequence, createStruct, dontBindUpdateAllQueryUsingTempTables, executeStoredProcedure, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConstraintDeletionString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlPrefix, getCreateTempTableSqlSuffix, getCursorCode, getDatabaseType, getDatabaseType, getDefaultSequenceTableName, getDriverSupportsNVarChar, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getJDBCOuterJoinString, getJDBCType, getJdbcTypeName, getJsonPlatform, getMaxBatchWritingSize, getNoWaitString, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTempTableForTable, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, hasPartitioningCallback, initialize, isCastRequired, isDynamicSQLRequiredForFunctions, isInformixOuterJoin, isJDBCExecuteCompliant, isNullAllowedInSelectClause, isOutputAllowWithResultSet, minimumTimeIncrement, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, registerOutputParameter, registerOutputParameter, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTypeNameToRegisterOutputParameter, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setDriverName, setDriverSupportsNVarChar, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, setNullFromDatabaseField, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldBindPartialParameters, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceBindAllParameters, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStoredProcedureTerminationToken, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUseNationalCharacterVaryingTypeForString, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldBindPartialParameters, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsCountDistinctWithMultipleFields, supportsGlobalTempTables, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOrderByParameters, supportsOuterJoinsWithBrackets, supportsTempTables, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, writeAddColumnClause, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeParameterMarker, writeUpdateOriginalFromTempTableSql
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, getConversionManager, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMariaDB, isMaxDB, isMySQL, isODBC, isOracle23, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, setUUIDQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.tools.schemaframework.DDLPlatform
buildCreateIndex, buildDropIndex, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, getBatchDelimiterString, getCreateDatabaseSchemaString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getDatabaseTypes, getEndDelimiter, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJavaTypes, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getOutputProcedureToken, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureEndString, getProcedureOptionList, getStartDelimiter, printFieldNotNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresTableInIndexDropDDL, requiresUniqueConstraintCreationOnTableCreate, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldPrintConstraintNameAfter, shouldPrintInputTokenAtStart, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureVariablesAfterBeginString, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsIndexes, supportsPrimaryKeyConstraint, supportsUniqueColumns, supportsUniqueKeyConstraints, writeTableCreationSuffix
-
-
-
-
Method Detail
-
buildClassTypes
protected Map<String,Class<?>> buildClassTypes()
Build the mapping of Oracle 21c database types to class types for the schema framework.- Overrides:
buildClassTypesin classOracle9Platform- Returns:
- database types to class types
Mapfor the schema framework
-
buildFieldTypes
protected Hashtable<Class<?>,org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition> buildFieldTypes()
Build the mapping of class types to Oracle 21c database types for the schema framework.- Overrides:
buildFieldTypesin classOracle10Platform- Returns:
Hashtablemapping class types to database types for the schema framework
-
convertObject
public <T> T convertObject(Object sourceObject, Class<T> javaClass, org.eclipse.persistence.internal.sessions.AbstractSession session) throws ConversionException, DatabaseException
INTERNAL: Allow for conversion from the Oracle type to the Java type. Used in cases when DB connection is needed like BLOB, CLOB.- Specified by:
convertObjectin interfaceorg.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>- Overrides:
convertObjectin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform- Parameters:
sourceObject- the object that must be convertedjavaClass- the class that the object must be converted tosession- current database session- Returns:
- the newly converted object
- Throws:
ConversionException- all exceptions will be thrown as this type.DatabaseException
-
setParameterValueInDatabaseCall
public void setParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException
INTERNAL Set the parameter in the JDBC statement at the given index. This support a wide range of different parameter types, and is heavily optimized for common types. Handles Postgres specific PGobject instances.- Overrides:
setParameterValueInDatabaseCallin classOracle9Platform- Parameters:
parameter- the parameter to setstatement- targetPreparedStatementinstanceindex- index of the parameter in the statementsession- current database session- Throws:
SQLException
-
setParameterValueInDatabaseCall
public void setParameterValueInDatabaseCall(Object parameter, CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException
INTERNAL Set the parameter in the JDBC statement at the given index. This support a wide range of different parameter types, and is heavily optimized for common types. Handles Postgres specific PGobject instances.- Overrides:
setParameterValueInDatabaseCallin classOracle9Platform- Parameters:
parameter- the parameter to setstatement- targetCallableStatementinstancename- name of the parameter in the statementsession- current database session- Throws:
SQLException
-
isOracle21
public boolean isOracle21()
INTERNAL: Check whether current platform is Oracle 21c or later.- Specified by:
isOracle21in interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
isOracle21in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform- Returns:
- Always returns
truefor instances of Oracle 21c platform. - Since:
- 4.0.8
-
-