|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
org.eclipse.persistence.platform.database.DatabasePlatform
org.eclipse.persistence.platform.database.OraclePlatform
public class OraclePlatform
Purpose: Provides Oracle specific behavior.
Responsibilities:
Field Summary |
---|
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform |
---|
DEFAULT_VARCHAR_SIZE |
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
---|
DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, Types_NCLOB |
Constructor Summary | |
---|---|
OraclePlatform()
|
Method Summary | |
---|---|
boolean |
allowsSizeInProcedureArguments()
Used for stored procedure definitions. |
ExpressionOperator |
atan2Operator()
INTERNAL: Build operator. |
org.eclipse.persistence.internal.databaseaccess.DatabaseCall |
buildCallWithReturning(SQLCall sqlCall,
Vector returnFields)
INTERNAL: Returns null unless the platform supports call with returning |
ValueReadQuery |
buildSelectQueryForIdentity(String qualifiedSeqName,
Integer size)
INTERNAL: Though Oracle doesn't support identity it could be imitated, see comment to setSupportsIdentity method. |
ValueReadQuery |
buildSelectQueryForSequenceObject(String qualifiedSeqName,
Integer size)
INTERNAL: Produce a DataReadQuery which updates(!) the sequence number in the db and returns it. |
boolean |
canBuildCallWithReturning()
INTERNAL: Indicates whether the platform can build call with returning. |
boolean |
canUnwrapOracleConnection()
INTERNAL: Indicates whether this Oracle platform can unwrap Oracle connection. |
void |
clearOracleConnectionCache(Connection conn)
INTERNAL: Clears both implicit and explicit caches of OracleConnection on Oracle9Platform, noop here. |
String |
getAssignmentString()
INTERNAL: Used for stored function calls. |
String |
getBatchBeginString()
Used for batch writing and sp defs. |
String |
getBatchEndString()
Used for batch writing and sp defs. |
String |
getDeclareBeginString()
INTERNAL: DECLARE stanza header for Anonymous PL/SQL block |
int |
getMaxFieldNameSize()
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform. |
Vector |
getNativeTableInfo(String table,
String creator,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return the catalog information through using the native SQL catalog selects. |
Object |
getObjectFromResultSet(ResultSet resultSet,
int columnNumber,
int type,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Get a timestamp value from a result set. |
String |
getProcedureArgumentSetter()
Used for sp calls. |
String |
getProcedureCallHeader()
Used for sp calls. |
String |
getProcedureCallTail()
Used for sp calls. |
String |
getSelectForUpdateString()
Most database support a syntax. |
String |
getSelectForUpdateWaitString(Integer waitTimeout)
Platforms that support the WAIT option should override this method. |
String |
getStoredProcedureParameterPrefix()
|
String |
getStoredProcedureTerminationToken()
|
ValueReadQuery |
getSystemChangeNumberQuery()
PUBLIC: The query to select the current system change number from Oracle. |
ValueReadQuery |
getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for Oracle. |
boolean |
isAlterSequenceObjectSupported()
INTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database. |
boolean |
isForUpdateCompatibleWithDistinct()
INTERNAL: Indicates whether SELECT DISTINCT ... |
boolean |
isLockTimeoutException(DatabaseException e)
Return true if the given exception occurred as a result of a lock time out exception (WAIT clause). |
boolean |
isNativeConnectionRequiredForLobLocator()
INTERNAL: Used by derived platforms (Oracle8Platform and higher) to indicate whether app. |
boolean |
isOracle()
|
Hashtable |
maximumNumericValues()
Builds a table of maximum numeric values keyed on java class. |
Hashtable |
minimumNumericValues()
Builds a table of minimum numeric values keyed on java class. |
void |
printFieldNullClause(Writer writer)
INTERNAL: Append the receiver's field 'NULL' constraint clause to a writer. |
void |
printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call,
org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer,
org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall. |
String |
serverTimestampString()
Return the current date and time from the server. |
void |
setSupportsIdentity(boolean supportsIdentity)
ADVANCED: Oracle db doesn't support identity. |
boolean |
shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this. |
boolean |
supportsAutoConversionToNumericForArithmeticOperations()
Some db allow VARCHAR db field to be used in arithmetic operations automatically converting them to numeric: UPDATE OL_PHONE SET PHONE_ORDER_VARCHAR = (PHONE_ORDER_VARCHAR + 1) WHERE ... |
boolean |
supportsIdentity()
INTERNAL: Indicates whether the platform supports identity. |
boolean |
supportsSelectForUpdateNoWait()
Returns true if the database supports SQL syntax not to wait on a SELECT..FOR UPADTE (i.e. |
boolean |
supportsSequenceObjects()
INTERNAL: Indicates whether the platform supports sequence objects. |
boolean |
supportsStoredFunctions()
INTERNAL: Return if database stored functions are supported. |
Connection |
unwrapOracleConnection(Connection connection)
INTERNAL: If can unwrap returns unwrapped Oracle connection, otherwise original connection. |
boolean |
wasFailureCommunicationBased(SQLException exception,
Connection connection,
org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
INTERNAL: A call to this method will perform a platform based check on the connection and exception error code to determine if the connection is still valid or if a communication error has occurred. |
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
---|
addBatch, addStructConverter, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildCreateIndex, buildDropIndex, buildProcedureCallString, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getBatchDelimiterString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getOutputProcedureToken, getPingSQL, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStringBindingSize, getStructConverters, getTempTableForTable, getTransactionIsolation, getTypeConverters, initialize, isCastRequired, isDynamicSQLRequiredForFunctions, isInformixOuterJoin, isNullAllowedInSelectClause, isXDBDocument, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldTypeSize, printFieldUnique, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, rollbackTransaction, setCastSizeForVarcharParameter, setCursorCode, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPingSQL, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldNativeSequenceUseTransaction, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNativeSequenceNumbers, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeUpdateOriginalFromTempTableSql |
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform |
---|
addSequence, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMySQL, isODBC, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, toString, usesPlatformDefaultSequence |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public OraclePlatform()
Method Detail |
---|
public boolean allowsSizeInProcedureArguments()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
allowsSizeInProcedureArguments
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public ExpressionOperator atan2Operator()
public org.eclipse.persistence.internal.databaseaccess.DatabaseCall buildCallWithReturning(SQLCall sqlCall, Vector returnFields)
buildCallWithReturning
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean canBuildCallWithReturning()
canBuildCallWithReturning
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public void clearOracleConnectionCache(Connection conn)
public String getAssignmentString()
getAssignmentString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getDeclareBeginString()
public String getBatchBeginString()
getBatchBeginString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getBatchEndString()
getBatchEndString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public int getMaxFieldNameSize()
getMaxFieldNameSize
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public Vector getNativeTableInfo(String table, String creator, org.eclipse.persistence.internal.sessions.AbstractSession session)
public String getProcedureArgumentSetter()
getProcedureArgumentSetter
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureCallHeader()
getProcedureCallHeader
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureCallTail()
getProcedureCallTail
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getSelectForUpdateString()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
getSelectForUpdateString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getSelectForUpdateWaitString(Integer waitTimeout)
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
getSelectForUpdateWaitString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getStoredProcedureParameterPrefix()
getStoredProcedureParameterPrefix
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getStoredProcedureTerminationToken()
getStoredProcedureTerminationToken
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public ValueReadQuery getSystemChangeNumberQuery()
public ValueReadQuery getTimestampQuery()
getTimestampQuery
in interface org.eclipse.persistence.internal.databaseaccess.Platform
getTimestampQuery
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
public Object getObjectFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException
getObjectFromResultSet
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
SQLException
org.eclipse.persistence.oraclespecific.Oracle9Platform
public boolean isNativeConnectionRequiredForLobLocator()
public boolean isOracle()
isOracle
in interface org.eclipse.persistence.internal.databaseaccess.Platform
isOracle
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
public Hashtable maximumNumericValues()
NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
maximumNumericValues
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public Hashtable minimumNumericValues()
NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
minimumNumericValues
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size)
buildSelectQueryForSequenceObject
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
qualifiedSeqName
- known by Oracle to be a defined sequencepublic ValueReadQuery buildSelectQueryForIdentity(String qualifiedSeqName, Integer size)
buildSelectQueryForIdentity
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
qualifiedSeqName
- known by Oracle to be a defined sequencepublic void printFieldNullClause(Writer writer) throws ValidationException
printFieldNullClause
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
ValidationException
public String serverTimestampString()
public boolean shouldUseJDBCOuterJoinSyntax()
shouldUseJDBCOuterJoinSyntax
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsAutoConversionToNumericForArithmeticOperations()
supportsAutoConversionToNumericForArithmeticOperations
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsSequenceObjects()
supportsSequenceObjects
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsIdentity()
supportsIdentity
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public void setSupportsIdentity(boolean supportsIdentity)
public boolean supportsStoredFunctions()
supportsStoredFunctions
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsSelectForUpdateNoWait()
public boolean canUnwrapOracleConnection()
public Connection unwrapOracleConnection(Connection connection)
public void printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer, org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
printSQLSelectStatement
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean isAlterSequenceObjectSupported()
isAlterSequenceObjectSupported
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean isForUpdateCompatibleWithDistinct()
isForUpdateCompatibleWithDistinct
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean isLockTimeoutException(DatabaseException e)
isLockTimeoutException
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
OraclePlatform.
public boolean wasFailureCommunicationBased(SQLException exception, Connection connection, org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
wasFailureCommunicationBased
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |