Class Oracle9Platform
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
- All Implemented Interfaces:
Serializable,Cloneable,org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>,org.eclipse.persistence.internal.databaseaccess.Platform
- Direct Known Subclasses:
Oracle10Platform
Purpose: Supports usage of certain Oracle JDBC specific APIs.
Supports binding NCHAR, NVARCHAR, NCLOB types as required by Oracle JDBC drivers.
Supports Oracle JDBC TIMESTAMP, TIMESTAMPTZ, TIMESTAMPLTZ types.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classINTERNAL: This class used for binding of NCHAR, NSTRING, NCLOB types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected booleanprotected booleanprotected booleanstatic final Classstatic final Classstatic final Classprotected booleanprotected booleanIndicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement.static final ClassFields inherited from class org.eclipse.persistence.platform.database.oracle.Oracle8Platform
lobValueLimits, usesLocatorForLOBWriteFields 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, vpdSetIdentifierQueryFields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZEFields 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, usesStringBindingFields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintaddBatch(PreparedStatement statement) INTERNAL: This gets called on each iteration to add parameters to the batch Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes (if useNativeBatchWriting is enabled, and the call uses optimistic locking).protected voidappendCalendar(Calendar calendar, Writer writer) INTERNAL: Appends an Oracle specific Timestamp with timezone and daylight time elements if usesNativeSQL is true, otherwise use the ODBC format.protected voidappendTimestamp(Timestamp timestamp, Writer writer) INTERNAL: Appends an Oracle specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format.INTERNAL: Add TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONEprotected HashtableINTERNAL: Add XMLType as the default database type for org.w3c.dom.Documents.protected StringbuildFirstRowsHint(int max) Build the hint string used for first rows.protected VectorbuildFromStringCharVec(Class javaClass) protected Vectorprotected Vectorprotected VectorbooleanINTERNAL: Indicates whether this Oracle platform can unwrap Oracle connection.voidvoidINTERNAL: Clears both implicit and explicit caches of OracleConnectionclone()convertObject(Object sourceObject, Class javaClass) INTERNAL: Allow for conversion from the Oracle type to the Java type.voidcopyInto(org.eclipse.persistence.internal.databaseaccess.Platform platform) Copy the state into the new platform.org.eclipse.persistence.internal.databaseaccess.ConnectionCustomizercreateConnectionCustomizer(org.eclipse.persistence.internal.databaseaccess.Accessor accessor, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL:intexecuteBatch(Statement statement, boolean isStatementPrepared) INTERNAL: This gets called on each batch statement execution Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes (if useNativeBatchWriting is enabled, and the call uses optimistic locking).INTERNAL: Returns user name retrieved from JDBC connection.getCustomModifyValueForCall(Call call, Object value, org.eclipse.persistence.internal.helper.DatabaseField field, boolean shouldBind) INTERNAL: Used by SQLCall.translate(..) The binding *must* be performed (NCHAR, NSTRING, NCLOB).getDataTypesConvertedFrom(Class javaClass) INTERNAL: Return the list of Classes that can be converted to from the passed in javaClass.getDataTypesConvertedTo(Class javaClass) INTERNAL: Return the list of Classes that can be converted from to the passed in javaClass.INTERNAL: Return the driver version.intgetJDBCType(Class javaType) Return the JDBC type for the Java type.intgetJDBCTypeForSetNull(org.eclipse.persistence.internal.helper.DatabaseField field) Return the JDBC type for the given database field to be passed to Statement.setNull The Oracle driver does not like the OPAQUE type so VARCHAR must be used.intPUBLIC: Return the BLOB/CLOB value limits on thin driver.getObjectFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Get a timestamp value from a result set.getTimestampFromServer(org.eclipse.persistence.internal.sessions.AbstractSession session, String sessionName) INTERNAL: Answer the timestamp from the server.getTIMESTAMPLTZFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Get a TIMESTAMPLTZ value from a result set.INTERNAL: This method returns the query to select the SYSTIMESTAMP as TIMESTAMPTZ from the server for Oracle9i.getTIMESTAMPTZFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Get a TIMESTAMPTZ value from a result set.protected org.eclipse.persistence.internal.platform.database.oracle.XMLTypeFactoryINTERNAL: Lazy initialization of xmlTypeFactory allows to avoid loading xdb-dependent class XMLTypeFactoryImpl unless xdb is used.voidinitializeConnectionData(Connection connection) INTERNAL:protected voidINTERNAL: Allow the use of XMLType operators on this platform.protected booleanINTERNAL: Used in write LOB method only to identify a CLOB.booleanINTERNAL: Return if ltz timestamps are returned in GMT by the driver.booleanPUBLIC: Return is this is the Oracle 9 platform.protected booleanisOracle9Specific(Class type) INTERNAL: Return if the type is a special oracle type.booleanINTERNAL: Return if timestamps are returned in GMT by the driver.booleanisXDBDocument(Object obj) INTERNAL: Indicates whether the passed object is an instance of XDBDocument.prepareBatchStatement(Statement statement, int maxBatchWritingSize) INTERNAL: Allows setting the batch size on the statement Is used with parameterized SQL, and should only be passed in prepared statementsINTERNAL: Return the current SYSTIMESTAMP as TIMESTAMPTZ from the server.voidsetLobValueLimits(int lobValueLimits) PUBLIC: Set the BLOB/CLOB value limits on thin driver.voidsetParameterValueInDatabaseCall(Object parameter, CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Note that index (not index+1) is used in statement.setObject(index, parameter) Binding starts with a 1 not 0, so make sure that index > 0.voidsetParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Note that index (not index+1) is used in statement.setObject(index, parameter) Binding starts with a 1 not 0, so make sure that index > 0.voidsetShouldTruncateDate(boolean shouldTruncateDate) PUBLIC: Indicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement.booleanPUBLIC: Indicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement.booleanshouldUseCustomModifyForCall(org.eclipse.persistence.internal.helper.DatabaseField field) INTERNAL Used by SQLCall.appendModify(..) If the field should be passed to customModifyInDatabaseCall, retun true, otherwise false.booleanINTERNAL: User name from JDBC connection is stored ininitializeConnectionData(Connection).unwrapOracleConnection(Connection connection) INTERNAL: If can unwrap returns unwrapped Oracle connection, otherwise original connection.Methods inherited from class org.eclipse.persistence.platform.database.oracle.Oracle8Platform
createArray, createStruct, freeTemporaryObject, getConnection, getRefValue, isBlob, isNativeConnectionRequiredForLobLocator, lobValueExceedsLimit, setShouldUseLocatorForLOBWrite, shouldUseLocatorForLOBWrite, writeLOBMethods 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, wasFailureCommunicationBasedMethods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addStructConverter, allowBindingForSelectClause, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, createArray, createPlatformDefaultSequence, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeStoredProcedure, getBatchDelimiterString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlPrefix, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getDefaultSequenceTableName, getDriverSupportsNVarChar, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getOutputProcedureToken, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureEndString, getProcedureOptionList, 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, printFieldIdentityClause, printFieldNotNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, 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, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIndexes, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOrderByParameters, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, writeAddColumnClause, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSqlMethods 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, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle12, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeIdentitySequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence
-
Field Details
-
NCHAR
-
NSTRING
-
NCLOB
-
XMLTYPE
-
driverVersion
-
shouldPrintCalendar
protected transient boolean shouldPrintCalendar -
isTimestampInGmt
protected transient boolean isTimestampInGmt -
isLtzTimestampInGmt
protected transient boolean isLtzTimestampInGmt -
isConnectionDataInitialized
protected transient boolean isConnectionDataInitialized -
shouldTruncateDate
protected boolean shouldTruncateDateIndicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement. Starting with version 12.1 oracle jdbc Statement.setDate no longer zeroes sql.Date's entire time component (only milliseconds). Set this flag to true to make the platform to truncate days/hours/minutes before passing the date to Statement.setDate method.
-
-
Constructor Details
-
Oracle9Platform
public Oracle9Platform()
-
-
Method Details
-
copyInto
public void copyInto(org.eclipse.persistence.internal.databaseaccess.Platform platform) Copy the state into the new platform.- Specified by:
copyIntoin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
copyIntoin classOracle8Platform
-
getObjectFromResultSet
public Object getObjectFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException INTERNAL: Get a timestamp value from a result set. Overrides the default behavior to specifically return a timestamp. Added to overcome an issue with the oracle 9.0.1.4 JDBC driver.- Overrides:
getObjectFromResultSetin classOraclePlatform- Throws:
SQLException- See Also:
-
- "org.eclipse.persistence.platform.database.oracle.Oracle9Plaform"
-
getTIMESTAMPTZFromResultSet
public Object getTIMESTAMPTZFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException INTERNAL: Get a TIMESTAMPTZ value from a result set.- Throws:
SQLException
-
getTIMESTAMPLTZFromResultSet
public Object getTIMESTAMPLTZFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException INTERNAL: Get a TIMESTAMPLTZ value from a result set.- Throws:
SQLException
-
shouldUseCustomModifyForCall
public boolean shouldUseCustomModifyForCall(org.eclipse.persistence.internal.helper.DatabaseField field) INTERNAL Used by SQLCall.appendModify(..) If the field should be passed to customModifyInDatabaseCall, retun true, otherwise false. Methods shouldCustomModifyInDatabaseCall and customModifyInDatabaseCall should be kept in sync: shouldCustomModifyInDatabaseCall should return true if and only if the field is handled by customModifyInDatabaseCall.- Specified by:
shouldUseCustomModifyForCallin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
shouldUseCustomModifyForCallin classOracle8Platform
-
initializePlatformOperators
protected void initializePlatformOperators()INTERNAL: Allow the use of XMLType operators on this platform.- Overrides:
initializePlatformOperatorsin classOraclePlatform
-
buildFieldTypes
INTERNAL: Add XMLType as the default database type for org.w3c.dom.Documents. Add TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE- Overrides:
buildFieldTypesin classOracle8Platform
-
buildFirstRowsHint
Build the hint string used for first rows. Allows it to be overridden- Overrides:
buildFirstRowsHintin classOraclePlatform- Parameters:
max-- Returns:
-
buildClassTypes
INTERNAL: Add TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE- Overrides:
buildClassTypesin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
clone
- Specified by:
clonein interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
clonein classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
convertObject
public Object convertObject(Object sourceObject, Class javaClass) throws ConversionException, DatabaseException INTERNAL: Allow for conversion from the Oracle type to the Java type.- Specified by:
convertObjectin interfaceorg.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>- Specified by:
convertObjectin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
convertObjectin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform- Parameters:
sourceObject- the object that must be convertedjavaClass- the class that the object must be converted to- Returns:
- the newly converted object
- Throws:
ConversionException- all exceptions will be thrown as this type.DatabaseException
-
appendTimestamp
INTERNAL: Appends an Oracle specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format. Native Format: to_timestamp ('1997-11-06 10:35:45.656' , 'yyyy-mm-dd hh:mm:ss.ff')- Overrides:
appendTimestampin classOraclePlatform- Throws:
IOException
-
appendCalendar
INTERNAL: Appends an Oracle specific Timestamp with timezone and daylight time elements if usesNativeSQL is true, otherwise use the ODBC format. Native Format: (DST) to_timestamp_tz ('1997-11-06 10:35:45.345 America/Los_Angeles','yyyy-mm-dd hh:mm:ss.ff TZR TZD') (non-DST) to_timestamp_tz ('1997-11-06 10:35:45.345 America/Los_Angeles','yyyy-mm-dd hh:mm:ss.ff TZR')- Overrides:
appendCalendarin classOraclePlatform- Throws:
IOException
-
initializeConnectionData
INTERNAL:- Overrides:
initializeConnectionDatain classOraclePlatform- Throws:
SQLException
-
clearConnectionData
public void clearConnectionData() -
clearOracleConnectionCache
INTERNAL: Clears both implicit and explicit caches of OracleConnection- Overrides:
clearOracleConnectionCachein classOraclePlatform
-
setParameterValueInDatabaseCall
public void setParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException INTERNAL: Note that index (not index+1) is used in statement.setObject(index, parameter) Binding starts with a 1 not 0, so make sure that index > 0. Treat Calendar separately. Bind Calendar as TIMESTAMPTZ.- Overrides:
setParameterValueInDatabaseCallin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
SQLException
-
setParameterValueInDatabaseCall
public void setParameterValueInDatabaseCall(Object parameter, CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException INTERNAL: Note that index (not index+1) is used in statement.setObject(index, parameter) Binding starts with a 1 not 0, so make sure that index > 0. Treat Calendar separately. Bind Calendar as TIMESTAMPTZ.- Overrides:
setParameterValueInDatabaseCallin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
SQLException
-
getTimestampFromServer
public Timestamp getTimestampFromServer(org.eclipse.persistence.internal.sessions.AbstractSession session, String sessionName) INTERNAL: Answer the timestamp from the server. Convert TIMESTAMPTZ to Timestamp- Specified by:
getTimestampFromServerin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
getTimestampFromServerin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
getTimestampQuery
INTERNAL: This method returns the query to select the SYSTIMESTAMP as TIMESTAMPTZ from the server for Oracle9i.- Specified by:
getTimestampQueryin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
getTimestampQueryin classOraclePlatform
-
serverTimestampString
INTERNAL: Return the current SYSTIMESTAMP as TIMESTAMPTZ from the server.- Overrides:
serverTimestampStringin classOraclePlatform
-
buildToTIMESTAMPVec
-
buildToNStringCharVec
-
buildToNClobVec
-
getLobValueLimits
public int getLobValueLimits()PUBLIC: Return the BLOB/CLOB value limits on thin driver. The default value is 0. If usesLocatorForLOBWrite is true, locator will be used in case the lob's size is larger than lobValueLimit.- Overrides:
getLobValueLimitsin classOracle8Platform
-
setLobValueLimits
public void setLobValueLimits(int lobValueLimits) PUBLIC: Set the BLOB/CLOB value limits on thin driver. The default value is 0. If usesLocatorForLOBWrite is true, locator will be used in case the lob's size is larger than lobValueLimit.- Overrides:
setLobValueLimitsin classOracle8Platform
-
isOracle9Specific
INTERNAL: Return if the type is a special oracle type. bug 3325122 - just checking against the 4 classes is faster than isAssignableFrom MWN. -
isClob
INTERNAL: Used in write LOB method only to identify a CLOB.- Overrides:
isClobin classOracle8Platform
-
getCustomModifyValueForCall
public Object getCustomModifyValueForCall(Call call, Object value, org.eclipse.persistence.internal.helper.DatabaseField field, boolean shouldBind) INTERNAL: Used by SQLCall.translate(..) The binding *must* be performed (NCHAR, NSTRING, NCLOB). In these special cases the method returns a wrapper object which knows whether it should be bound or appended and knows how to do that.- Specified by:
getCustomModifyValueForCallin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
getCustomModifyValueForCallin classOracle8Platform
-
buildFromStringCharVec
-
getDataTypesConvertedFrom
INTERNAL: Return the list of Classes that can be converted to from the passed in javaClass. oracle.sql.TIMESTAMP and NCHAR types are added in some lists.- Overrides:
getDataTypesConvertedFromin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform- Parameters:
javaClass- - the class that is converted from- Returns:
- - a vector of classes
-
getDataTypesConvertedTo
INTERNAL: Return the list of Classes that can be converted from to the passed in javaClass. A list is added for oracle.sql.TIMESTAMP and NCHAR types.- Overrides:
getDataTypesConvertedToin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform- Parameters:
javaClass- - the class that is converted to- Returns:
- - a vector of classes
-
getJDBCTypeForSetNull
public int getJDBCTypeForSetNull(org.eclipse.persistence.internal.helper.DatabaseField field) Return the JDBC type for the given database field to be passed to Statement.setNull The Oracle driver does not like the OPAQUE type so VARCHAR must be used.- Overrides:
getJDBCTypeForSetNullin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getJDBCType
Return the JDBC type for the Java type. The Oracle driver does not like the OPAQUE type so VARCHAR must be used.- Overrides:
getJDBCTypein classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
executeBatch
INTERNAL: This gets called on each batch statement execution Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes (if useNativeBatchWriting is enabled, and the call uses optimistic locking).- Overrides:
executeBatchin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Parameters:
isStatementPrepared- - flag is set to true if this statement is prepared- Returns:
- - number of rows modified/deleted by this statement
- Throws:
SQLException
-
addBatch
INTERNAL: This gets called on each iteration to add parameters to the batch Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes (if useNativeBatchWriting is enabled, and the call uses optimistic locking). Is used with parameterized SQL- Overrides:
addBatchin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- - number of rows modified/deleted by this statement if it was executed (0 if it wasn't)
- Throws:
SQLException
-
prepareBatchStatement
public Statement prepareBatchStatement(Statement statement, int maxBatchWritingSize) throws SQLException INTERNAL: Allows setting the batch size on the statement Is used with parameterized SQL, and should only be passed in prepared statements- Overrides:
prepareBatchStatementin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- - statement to be used for batch writing
- Throws:
SQLException
-
getXMLTypeFactory
protected org.eclipse.persistence.internal.platform.database.oracle.XMLTypeFactory getXMLTypeFactory()INTERNAL: Lazy initialization of xmlTypeFactory allows to avoid loading xdb-dependent class XMLTypeFactoryImpl unless xdb is used.- Returns:
- XMLTypeFactory
-
isXDBDocument
INTERNAL: Indicates whether the passed object is an instance of XDBDocument.- Overrides:
isXDBDocumentin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- boolean
-
canUnwrapOracleConnection
public boolean canUnwrapOracleConnection()INTERNAL: Indicates whether this Oracle platform can unwrap Oracle connection.- Overrides:
canUnwrapOracleConnectionin classOraclePlatform
-
unwrapOracleConnection
INTERNAL: If can unwrap returns unwrapped Oracle connection, otherwise original connection.- Overrides:
unwrapOracleConnectionin classOraclePlatform
-
isOracle9
public boolean isOracle9()PUBLIC: Return is this is the Oracle 9 platform.- Specified by:
isOracle9in interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
isOracle9in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
createConnectionCustomizer
public org.eclipse.persistence.internal.databaseaccess.ConnectionCustomizer createConnectionCustomizer(org.eclipse.persistence.internal.databaseaccess.Accessor accessor, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL:- Overrides:
createConnectionCustomizerin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
getDriverVersion
INTERNAL: Return the driver version. -
isTimestampInGmt
public boolean isTimestampInGmt()INTERNAL: Return if timestamps are returned in GMT by the driver. -
isLtzTimestampInGmt
public boolean isLtzTimestampInGmt()INTERNAL: Return if ltz timestamps are returned in GMT by the driver. -
shouldTruncateDate
public boolean shouldTruncateDate()PUBLIC: Indicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement. Starting with version 12.1 oracle jdbc Statement.setDate no longer zeroes sql.Date's entire time component (only milliseconds). "true" indicates that the platform truncates days/hours/minutes before passing the date to Statement.setDate method. -
setShouldTruncateDate
public void setShouldTruncateDate(boolean shouldTruncateDate) PUBLIC: Indicates whether time component of java.sql.Date should be truncated (hours, minutes, seconds all set to zero) before been passed as a parameter to PreparedStatement. Starting with version 12.1 oracle jdbc Statement.setDate no longer zeroes sql.Date's entire time component (only milliseconds). Set this flag to true to make the platform to truncate days/hours/minutes before passing the date to Statement.setDate method. -
supportsConnectionUserName
public boolean supportsConnectionUserName()INTERNAL: User name from JDBC connection is stored ininitializeConnectionData(Connection).- Overrides:
supportsConnectionUserNamein classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- Always returns
true
-
getConnectionUserName
INTERNAL: Returns user name retrieved from JDBC connection.initializeConnectionData(Connection)shall be called before this method.- Overrides:
getConnectionUserNamein classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- User name retrieved from JDBC connection.
-