public class OraclePlatform extends DatabasePlatform
Purpose: Provides Oracle specific behavior.
Responsibilities:
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
BRACKET_END |
protected java.lang.String |
END_FROM |
protected java.lang.String |
END_FROM_ID |
protected java.lang.String |
FROM |
protected java.lang.String |
FROM_ID |
protected java.lang.String |
HINT_END |
protected java.lang.String |
HINT_START |
protected java.lang.String |
LOCK_END |
protected java.lang.String |
LOCK_START_PREFIX |
protected java.lang.String |
LOCK_START_PREFIX_WHERE |
protected java.lang.String |
LOCK_START_SUFFIX |
protected java.lang.String |
MAX_ROW |
protected java.lang.String |
MIN_ROW |
protected java.lang.String |
ORDER_BY_ID |
protected java.lang.String |
SELECT |
protected java.lang.String |
SELECT_ID_PREFIX |
protected java.lang.String |
SELECT_ID_SUFFIX |
protected boolean |
shouldPrintForUpdateClause
Whether a FOR UPDATE clause should be printed at the end of the query
|
protected boolean |
supportsIdentity
Advanced attribute indicating whether identity is supported,
see comment to setSupportsIdentity method.
|
protected static DataModifyQuery |
vpdClearIdentifierQuery |
protected static DataModifyQuery |
vpdSetIdentifierQuery |
DEFAULT_VARCHAR_SIZEbatchWritingMechanism, 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, Types_NCLOB, Types_SQLXML, useJDBCStoredProcedureSyntax, useNationalCharacterVarying, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBindingconversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery| Constructor and Description |
|---|
OraclePlatform() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
allowsSizeInProcedureArguments() |
protected void |
appendByteArray(byte[] bytes,
java.io.Writer writer)
INTERNAL:
If using native SQL then print a byte[] literally as a hex string otherwise use ODBC format
as provided in DatabasePlatform.
|
protected void |
appendCalendar(java.util.Calendar calendar,
java.io.Writer writer)
INTERNAL:
Appends an Oracle specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format.
|
protected void |
appendDate(java.sql.Date date,
java.io.Writer writer)
INTERNAL:
Appends an Oracle specific date if usesNativeSQL is true otherwise use the ODBC format.
|
protected void |
appendTime(java.sql.Time time,
java.io.Writer writer)
INTERNAL:
Appends an Oracle specific time if usesNativeSQL is true otherwise use the ODBC format.
|
protected void |
appendTimestamp(java.sql.Timestamp timestamp,
java.io.Writer writer)
INTERNAL:
Appends an Oracle specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format.
|
org.eclipse.persistence.internal.databaseaccess.DatabaseCall |
buildCallWithReturning(SQLCall sqlCall,
java.util.Vector returnFields)
INTERNAL:
Returns null unless the platform supports call with returning
|
protected java.util.Hashtable |
buildFieldTypes()
INTERNAL:
|
protected java.lang.String |
buildFirstRowsHint(int max)
Build the hint string used for first rows.
|
ValueReadQuery |
buildSelectQueryForIdentity(java.lang.String qualifiedSeqName,
java.lang.Integer size)
INTERNAL:
Though Oracle doesn't support identity it could be imitated,
see comment to setSupportsIdentity method.
|
ValueReadQuery |
buildSelectQueryForSequenceObject(java.lang.String qualifiedSeqName,
java.lang.Integer size)
INTERNAL:
Produce a DataReadQuery which updates(!)
|
boolean |
canBuildCallWithReturning()
INTERNAL:
Indicates whether the platform can build call with returning.
|
boolean |
canUnwrapOracleConnection()
INTERNAL:
Indicates whether this Oracle platform can unwrap Oracle connection.
|
boolean |
checkTableExists(org.eclipse.persistence.internal.sessions.DatabaseSessionImpl session,
TableDefinition table,
boolean suppressLogging)
INTERNAL:
Executes and evaluates query to check whether given table exists.
|
void |
clearOracleConnectionCache(java.sql.Connection conn)
INTERNAL:
Clears both implicit and explicit caches of OracleConnection on Oracle9Platform, noop here.
|
Expression |
createExpressionFor(org.eclipse.persistence.internal.helper.DatabaseField field,
Expression builder) |
protected static ExpressionOperator |
exceptOperator()
INTERNAL:
Create the EXCEPT operator, MINUS in Oracle.
|
java.lang.String |
getAssignmentString()
INTERNAL:
Used for stored function calls.
|
java.lang.String |
getBatchBeginString()
Used for batch writing and sp defs.
|
java.lang.String |
getBatchEndString()
Used for batch writing and sp defs.
|
java.lang.String |
getBatchRowCountAssignString()
Used for batch writing for row count return.
|
java.lang.String |
getBatchRowCountDeclareString()
Used for batch writing for row count return.
|
java.lang.String |
getBatchRowCountReturnString()
Used for batch writing for row count return.
|
java.lang.String |
getDeclareBeginString()
INTERNAL:
DECLARE stanza header for Anonymous PL/SQL block
|
java.lang.String |
getDropCascadeString()
Allows DROP TABLE to cascade dropping of any dependent constraints if the database supports this option.
|
java.lang.String |
getDropDatabaseSchemaString(java.lang.String schema)
Return the drop schema definition.
|
int |
getINClauseLimit() |
int |
getMaxFieldNameSize()
INTERNAL:
returns the maximum number of characters that can be used in a field
name on this platform.
|
java.util.Vector |
getNativeTableInfo(java.lang.String table,
java.lang.String creator,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return the catalog information through using the native SQL catalog selects.
|
java.lang.Object |
getObjectFromResultSet(java.sql.ResultSet resultSet,
int columnNumber,
int type,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Get a timestamp value from a result set.
|
java.lang.String |
getProcedureArgument(java.lang.String name,
java.lang.Object parameter,
org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType parameterType,
StoredProcedureCall call,
org.eclipse.persistence.internal.sessions.AbstractSession session) |
java.lang.String |
getProcedureCallHeader()
Used for sp calls.
|
java.lang.String |
getProcedureCallTail()
Used for sp calls.
|
java.lang.String |
getSelectForUpdateString() |
java.lang.String |
getSelectForUpdateWaitString(java.lang.Integer waitTimeout) |
java.lang.String |
getStoredProcedureParameterPrefix() |
ValueReadQuery |
getSystemChangeNumberQuery()
PUBLIC:
The query to select the current system change number
from Oracle.
|
protected DataReadQuery |
getTableExistsQuery(TableDefinition table)
INTERNAL:
Returns query to check whether given table exists.
|
ValueReadQuery |
getTimestampQuery()
PUBLIC:
This method returns the query to select the timestamp
from the server for Oracle.
|
DatabaseQuery |
getVPDClearIdentifierQuery(java.lang.String vpdIdentifier)
INTERNAL:
Return an Oracle defined VPD clear identifier query.
|
java.lang.String |
getVPDCreationFunctionString(java.lang.String tableName,
java.lang.String tenantFieldName)
INTERNAL:
Return an Oracle defined VPD identifier function.
|
java.lang.String |
getVPDCreationPolicyString(java.lang.String tableName,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Return an Oracle defined VPD identifier policy.
|
java.lang.String |
getVPDDeletionString(java.lang.String tableName,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Return an Oracle defined VPD identifier policy deletion.
|
DatabaseQuery |
getVPDSetIdentifierQuery(java.lang.String vpdIdentifier)
INTERNAL:
Return an Oracle defined VPD set identifier query.
|
void |
initializeConnectionData(java.sql.Connection connection) |
protected void |
initializePlatformOperators()
Initialize any platform-specific operators
|
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 |
isLobCompatibleWithDistinct()
INTERNAL:
Indicates whether SELECT DISTINCT lob FROM ...
|
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. server should unwrap connection
to use lob locator.
|
boolean |
isOracle() |
boolean |
isRowCountOutputParameterRequired()
Oracle does not return the row count from PLSQL anon blocks,
so an output parameter is required for this.
|
protected static ExpressionOperator |
logOperator()
Create the log operator for this platform
|
java.util.Hashtable |
maximumNumericValues()
Builds a table of maximum numeric values keyed on java class.
|
java.util.Hashtable |
minimumNumericValues()
Builds a table of minimum numeric values keyed on java class.
|
protected static ExpressionOperator |
operatorLocate()
INTERNAL:
Override the default locate operator
|
protected static ExpressionOperator |
operatorLocate2()
INTERNAL:
Override the default locate operator
|
protected static ExpressionOperator |
operatorOuterJoin()
Create the outer join operator for this platform
|
protected static ExpressionOperator |
oracleDateName()
INTERNAL:
Oracle equivalent to DATENAME is TO_CHAR.
|
void |
printFieldNullClause(java.io.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.
|
protected static ExpressionOperator |
regexpOperator()
INTERNAL:
Create the REGEXP_LIKE operator.
|
java.lang.String |
serverTimestampString()
Return the current date and time from the server.
|
void |
setSupportsIdentity(boolean supportsIdentity)
ADVANCED:
Oracle db doesn't support identity.
|
boolean |
shouldPrintForUpdateClause() |
boolean |
shouldPrintStoredProcedureArgumentNameInCall()
INTERNAL:
Should the variable name of a stored procedure call be printed as part of the procedure call
e.g.
|
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.
|
boolean |
supportsVPD()
Oracle db supports VPD.
|
boolean |
supportsWaitForUpdate() |
java.sql.Connection |
unwrapOracleConnection(java.sql.Connection connection)
INTERNAL:
If can unwrap returns unwrapped Oracle connection, otherwise original connection.
|
boolean |
useJDBCStoredProcedureSyntax()
Return true if JDBC syntax should be used for stored procedure calls.
|
boolean |
wasFailureCommunicationBased(java.sql.SQLException exception,
java.sql.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.
|
addBatch, addStructConverter, allowBindingForSelectClause, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getBatchDelimiterString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlPrefix, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getOutputProcedureToken, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, 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, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, 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, setParameterValueInDatabaseCall, setParameterValueInDatabaseCall, 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, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsConnectionUserName, 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, writeLOB, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSqladdOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle9, 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, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequenceprotected static DataModifyQuery vpdSetIdentifierQuery
protected static DataModifyQuery vpdClearIdentifierQuery
protected boolean shouldPrintForUpdateClause
protected boolean supportsIdentity
protected java.lang.String SELECT
protected java.lang.String HINT_START
protected java.lang.String HINT_END
protected java.lang.String FROM
protected java.lang.String END_FROM
protected java.lang.String MAX_ROW
protected java.lang.String MIN_ROW
protected java.lang.String LOCK_START_PREFIX
protected java.lang.String LOCK_START_PREFIX_WHERE
protected java.lang.String LOCK_START_SUFFIX
protected java.lang.String LOCK_END
protected java.lang.String SELECT_ID_PREFIX
protected java.lang.String SELECT_ID_SUFFIX
protected java.lang.String FROM_ID
protected java.lang.String END_FROM_ID
protected java.lang.String ORDER_BY_ID
protected java.lang.String BRACKET_END
public void initializeConnectionData(java.sql.Connection connection)
throws java.sql.SQLException
initializeConnectionData in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.sql.SQLExceptionpublic boolean allowsSizeInProcedureArguments()
allowsSizeInProcedureArguments in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected void appendByteArray(byte[] bytes,
java.io.Writer writer)
throws java.io.IOException
appendByteArray in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendDate(java.sql.Date date,
java.io.Writer writer)
throws java.io.IOException
appendDate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendTime(java.sql.Time time,
java.io.Writer writer)
throws java.io.IOException
appendTime in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendTimestamp(java.sql.Timestamp timestamp,
java.io.Writer writer)
throws java.io.IOException
appendTimestamp in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendCalendar(java.util.Calendar calendar,
java.io.Writer writer)
throws java.io.IOException
appendCalendar in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected java.util.Hashtable buildFieldTypes()
buildFieldTypes in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected java.lang.String buildFirstRowsHint(int max)
max - public org.eclipse.persistence.internal.databaseaccess.DatabaseCall buildCallWithReturning(SQLCall sqlCall, java.util.Vector returnFields)
buildCallWithReturning in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean canBuildCallWithReturning()
canBuildCallWithReturning in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic void clearOracleConnectionCache(java.sql.Connection conn)
public java.lang.String getAssignmentString()
getAssignmentString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getDeclareBeginString()
public java.lang.String getBatchBeginString()
getBatchBeginString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getBatchEndString()
getBatchEndString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getBatchRowCountDeclareString()
getBatchRowCountDeclareString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isRowCountOutputParameterRequired()
isRowCountOutputParameterRequired in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getBatchRowCountReturnString()
getBatchRowCountReturnString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getDropDatabaseSchemaString(java.lang.String schema)
getDropDatabaseSchemaString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getBatchRowCountAssignString()
getBatchRowCountAssignString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int getMaxFieldNameSize()
getMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.util.Vector getNativeTableInfo(java.lang.String table,
java.lang.String creator,
org.eclipse.persistence.internal.sessions.AbstractSession session)
public java.lang.String getProcedureCallHeader()
getProcedureCallHeader in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureCallTail()
getProcedureCallTail in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getDropCascadeString()
getDropCascadeString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getSelectForUpdateString()
getSelectForUpdateString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getSelectForUpdateWaitString(java.lang.Integer waitTimeout)
getSelectForUpdateWaitString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getStoredProcedureParameterPrefix()
getStoredProcedureParameterPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic ValueReadQuery getSystemChangeNumberQuery()
public ValueReadQuery getTimestampQuery()
getTimestampQuery in interface org.eclipse.persistence.internal.databaseaccess.PlatformgetTimestampQuery in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic DatabaseQuery getVPDClearIdentifierQuery(java.lang.String vpdIdentifier)
getVPDClearIdentifierQuery in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getVPDCreationFunctionString(java.lang.String tableName,
java.lang.String tenantFieldName)
getVPDCreationFunctionString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getVPDCreationPolicyString(java.lang.String tableName,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getVPDCreationPolicyString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getVPDDeletionString(java.lang.String tableName,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getVPDDeletionString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic DatabaseQuery getVPDSetIdentifierQuery(java.lang.String vpdIdentifier)
getVPDSetIdentifierQuery in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.Object getObjectFromResultSet(java.sql.ResultSet resultSet,
int columnNumber,
int type,
org.eclipse.persistence.internal.sessions.AbstractSession session)
throws java.sql.SQLException
getObjectFromResultSet in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.sql.SQLExceptionprotected void initializePlatformOperators()
initializePlatformOperators in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformprotected static ExpressionOperator operatorOuterJoin()
protected static ExpressionOperator exceptOperator()
protected static ExpressionOperator regexpOperator()
protected static ExpressionOperator operatorLocate()
protected static ExpressionOperator operatorLocate2()
protected static ExpressionOperator logOperator()
protected static ExpressionOperator oracleDateName()
public boolean isNativeConnectionRequiredForLobLocator()
public boolean isOracle()
isOracle in interface org.eclipse.persistence.internal.databaseaccess.PlatformisOracle in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic java.util.Hashtable maximumNumericValues()
NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
maximumNumericValues in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.util.Hashtable minimumNumericValues()
NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
minimumNumericValues in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String qualifiedSeqName, java.lang.Integer size)
buildSelectQueryForSequenceObject in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformqualifiedSeqName - known by Oracle to be a defined sequencepublic ValueReadQuery buildSelectQueryForIdentity(java.lang.String qualifiedSeqName, java.lang.Integer size)
buildSelectQueryForIdentity in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformqualifiedSeqName - known by Oracle to be a defined sequencepublic void printFieldNullClause(java.io.Writer writer)
throws ValidationException
printFieldNullClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformValidationExceptionpublic java.lang.String serverTimestampString()
public boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureArgument(java.lang.String name,
java.lang.Object parameter,
org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType parameterType,
StoredProcedureCall call,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getProcedureArgument in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldUseJDBCOuterJoinSyntax()
shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsAutoConversionToNumericForArithmeticOperations()
supportsAutoConversionToNumericForArithmeticOperations in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsSequenceObjects()
supportsSequenceObjects in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic boolean supportsIdentity()
supportsIdentity in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic void setSupportsIdentity(boolean supportsIdentity)
public boolean supportsStoredFunctions()
supportsStoredFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsVPD()
supportsVPD in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsWaitForUpdate()
supportsWaitForUpdate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsSelectForUpdateNoWait()
public boolean canUnwrapOracleConnection()
public java.sql.Connection unwrapOracleConnection(java.sql.Connection connection)
public boolean useJDBCStoredProcedureSyntax()
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.DatabasePlatformpublic boolean isAlterSequenceObjectSupported()
isAlterSequenceObjectSupported in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isForUpdateCompatibleWithDistinct()
isForUpdateCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isLobCompatibleWithDistinct()
isLobCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isLockTimeoutException(DatabaseException e)
isLockTimeoutException in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean wasFailureCommunicationBased(java.sql.SQLException exception,
java.sql.Connection connection,
org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
wasFailureCommunicationBased in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintForUpdateClause()
shouldPrintForUpdateClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic Expression createExpressionFor(org.eclipse.persistence.internal.helper.DatabaseField field, Expression builder)
createExpressionFor in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformprotected DataReadQuery getTableExistsQuery(TableDefinition table)
getTableExistsQuery in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformtable - database table meta-datapublic boolean checkTableExists(org.eclipse.persistence.internal.sessions.DatabaseSessionImpl session,
TableDefinition table,
boolean suppressLogging)
checkTableExists in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformsession - current database sessiontable - database table meta-datasuppressLogging - whether to suppress logging during query executiontrue if given table exists or false otherwisepublic int getINClauseLimit()
getINClauseLimit in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform