Class SQLServerPlatform
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.SQLServerPlatform
- All Implemented Interfaces:
Serializable
,Cloneable
,org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>
,org.eclipse.persistence.internal.databaseaccess.Platform
Purpose: Provides SQL Server specific behavior.
Responsibilities:
- Native SQL for byte[], Date, Time, & Timestamp.
- Native sequencing using @@IDENTITY.
- See Also:
-
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
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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected static ExpressionOperator
INTERNAL: Function, to add months to a date.protected void
appendByteArray
(byte[] bytes, Writer writer) If using native SQL then print a byte[] as '0xFF...'protected void
appendCalendar
(Calendar calendar, Writer writer) Answer a platform correct string representation of a Calendar, suitable for SQL generation.protected void
appendDate
(Date date, Writer writer) Answer a platform correct string representation of a Date, suitable for SQL generation.protected void
appendSybaseCalendar
(Calendar calendar, Writer writer) Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)protected void
appendSybaseTimestamp
(Timestamp timestamp, Writer writer) Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)protected void
appendTime
(Time time, Writer writer) Answer a platform correct string representation of a Time, suitable for SQL generation.protected void
appendTimestamp
(Timestamp timestamp, Writer writer) Answer a platform correct string representation of a Timestamp, suitable for SQL generation.protected Hashtable
Return the mapping of class types to database types for the schema framework.INTERNAL: Build the identity query for native sequencing.buildSelectQueryForSequenceObject
(String qualifiedSeqName, Integer size) INTERNAL: Produce a DataReadQuery which updates(!) the sequence number in the database and returns it.boolean
INTERNAL: In SQLServer local temporary table created by one PreparedStatement can't be used in another PreparedStatement.protected static ExpressionOperator
INTERNAL: Derby does not support EXTRACT, but does have DATEPART.Used for batch writing and sp defs.protected String
INTERNAL:This method is used to print the required output parameter token for the specific platform.This method is used to print the required output parameter token for the specific platform.This method is used to print the output parameter token when stored procedures are calledint
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.getNativeTableInfo
(String table, String creator, org.eclipse.persistence.internal.sessions.AbstractSession session) Return the catalog information through using the native SQL catalog selects.getObjectFromResultSet
(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL: Get the object from the JDBC Result set.This method is used to print the output parameter token when stored procedures are calledUsed for sp defs.Used for sp calls.INTERNAL: This syntax does no wait on the lock.INTERNAL: Lock.org.eclipse.persistence.internal.helper.DatabaseTable
getTempTableForTable
(org.eclipse.persistence.internal.helper.DatabaseTable table) INTERNAL:PUBLIC: This method returns the query to select the timestamp from the server for SQLServer.void
initializeConnectionData
(Connection connection) INTERNAL: Allow initialization from the connection.protected void
Initialize any platform-specific operatorsprotected static ExpressionOperator
INTERNAL: Build instring operatorboolean
INTERNAL: Return true if output parameters can be built with result sets.boolean
protected static ExpressionOperator
INTERNAL: create the Locate2 Operator for this platformprotected static ExpressionOperator
INTERNAL: Build the Sybase equivalent to LocateBuilds a table of maximum numeric values keyed on java class.Builds a table of minimum numeric values keyed on java class.protected ExpressionOperator
Override the default MOD operator.protected static ExpressionOperator
void
printFieldIdentityClause
(Writer writer) INTERNAL: Append the receiver's field 'identity' constraint clause to a writer.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.boolean
USed for sp calls.boolean
Used for sp calls.void
setDriverSupportsOffsetDateTime
(boolean driverSupportsOffsetDateTime) Allow user to turn off ODT support, in case they rely on the old behavior.void
setParameterValueInDatabaseCall
(Object parameter, CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session) INTERNAL Set the parameter in the JDBC statement with the given name.void
setParameterValueInDatabaseCall
(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.boolean
This is required in the construction of the stored procedures with output parametersboolean
INTERNAL: Indicates whether locking clause should be printed after where clause by SQLSelectStatement.boolean
This is required in the construction of the stored procedures with output parametersboolean
JDBC defines and outer join syntax, many drivers do not support this.protected static ExpressionOperator
Override the default SubstringSingleArg operator.boolean
INTERNAL: Indicates whether the platform supports identity.boolean
INTERNAL:boolean
INTERNAL:protected static ExpressionOperator
INTERNAL: Build Sybase equivalent to TO_CHAR.protected static ExpressionOperator
INTERNAL: Build Sybase equivalent to TO_DATE.protected static ExpressionOperator
INTERNAL: Build Sybase equivalent to TO_CHAR.protected static ExpressionOperator
INTERNAL: Build Sybase equivalent to TO_NUMBER.protected static ExpressionOperator
INTERNAL: Build Trim operator.protected static ExpressionOperator
INTERNAL: Use RTRIM(LTRIM(?)) function for trim.void
writeUpdateOriginalFromTempTableSql
(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, Collection pkFields, Collection assignedFields) INTERNAL:Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowBindingForSelectClause, allowsSizeInProcedureArguments, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, checkTableExists, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, createStruct, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlSuffix, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgument, getProcedureAsString, getProcedureBeginString, getProcedureCallTail, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTableExistsQuery, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isRowCountOutputParameterRequired, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, 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, shouldPrintForUpdateClause, shouldPrintInnerJoinInWhereClause, shouldPrintInputTokenAtStart, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIndexes, supportsIndividualTableLocking, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOrderByParameters, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsStoredFunctions, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, supportsWaitForUpdate, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeAddColumnClause, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeLOB, writeParameterMarker, writeTableCreationSuffix
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, createExpressionFor, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getINClauseLimit, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, 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
-
Constructor Details
-
SQLServerPlatform
public SQLServerPlatform()
-
-
Method Details
-
initializeConnectionData
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
INTERNAL: Allow initialization from the connection.- Overrides:
initializeConnectionData
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
SQLException
-
setDriverSupportsOffsetDateTime
public void setDriverSupportsOffsetDateTime(boolean driverSupportsOffsetDateTime) Allow user to turn off ODT support, in case they rely on the old behavior. -
appendByteArray
If using native SQL then print a byte[] as '0xFF...'- Overrides:
appendByteArray
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
appendDate
Answer a platform correct string representation of a Date, suitable for SQL generation. Native format: 'yyyy-mm-dd- Overrides:
appendDate
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
appendSybaseTimestamp
Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)- Throws:
IOException
-
appendSybaseCalendar
Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)- Throws:
IOException
-
appendTime
Answer a platform correct string representation of a Time, suitable for SQL generation. The time is printed in the ODBC platform independent format {t'hh:mm:ss'}.- Overrides:
appendTime
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
appendTimestamp
Answer a platform correct string representation of a Timestamp, suitable for SQL generation. The date is printed in the ODBC platform independent format {d'YYYY-MM-DD'}.- Overrides:
appendTimestamp
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
appendCalendar
Answer a platform correct string representation of a Calendar, suitable for SQL generation. The date is printed in the ODBC platform independent format {d'YYYY-MM-DD'}.- Overrides:
appendCalendar
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
buildFieldTypes
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Return the mapping of class types to database types for the schema framework.- Overrides:
buildFieldTypes
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
buildSelectQueryForIdentity
INTERNAL: Build the identity query for native sequencing.- Overrides:
buildSelectQueryForIdentity
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
buildSelectQueryForSequenceObject
INTERNAL: Produce a DataReadQuery which updates(!) the sequence number in the database and returns it.- Overrides:
buildSelectQueryForSequenceObject
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
- Parameters:
qualifiedSeqName
- a defined database sequence
-
dontBindUpdateAllQueryUsingTempTables
public boolean dontBindUpdateAllQueryUsingTempTables()INTERNAL: In SQLServer local temporary table created by one PreparedStatement can't be used in another PreparedStatement. Workaround is to use Statement instead of PreparedStatement.- Overrides:
dontBindUpdateAllQueryUsingTempTables
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getBatchDelimiterString
Used for batch writing and sp defs.- Overrides:
getBatchDelimiterString
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getCreationInOutputProcedureToken
This method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationInOutputProcedureToken
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getCreationOutputProcedureToken
This method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationOutputProcedureToken
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getInOutputProcedureToken
This method is used to print the output parameter token when stored procedures are called- Overrides:
getInOutputProcedureToken
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getMaxFieldNameSize
public int getMaxFieldNameSize()INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.- Overrides:
getMaxFieldNameSize
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getNativeTableInfo
public Vector getNativeTableInfo(String table, String creator, org.eclipse.persistence.internal.sessions.AbstractSession session) Return the catalog information through using the native SQL catalog selects. This is required because many JDBC driver do not support meta-data. Willcards can be passed as arguments. -
getOutputProcedureToken
This method is used to print the output parameter token when stored procedures are called- Overrides:
getOutputProcedureToken
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureArgumentString
Used for sp defs.- Overrides:
getProcedureArgumentString
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureCallHeader
Used for sp calls.- Overrides:
getProcedureCallHeader
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getStoredProcedureParameterPrefix
- Overrides:
getStoredProcedureParameterPrefix
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getTimestampQuery
PUBLIC: This method returns the query to select the timestamp from the server for SQLServer.- Specified by:
getTimestampQuery
in interfaceorg.eclipse.persistence.internal.databaseaccess.Platform
- Overrides:
getTimestampQuery
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
getSelectForUpdateString
INTERNAL: Lock. UPDLOCK seems like the correct table hint to use: HOLDLOCK is too weak - doesn't lock out another read with HOLDLOCK, XLOCK is too strong - locks out another read which doesn't use any locks. UPDLOCK seems to behave exactly like Oracle's FOR UPDATE: locking out updates and other reads with FOR UPDATE but allowing other reads without locks. SQLServer seems to decide itself on the granularity of the lock - it could lock more than the returned rows (for instance a page). It could be forced to obtain to make sure to obtain row level lock: WITH (UPDLOCK, ROWLOCK) However this approach is strongly discouraged because it can consume too much resources: selecting 900 rows from and requiring a "personal" lock for each row may not be feasible because of not enough memory available at the moment - in that case SQLServer will wait until the resource becomes available.- Overrides:
getSelectForUpdateString
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getSelectForUpdateNoWaitString
INTERNAL: This syntax does no wait on the lock.- Overrides:
getSelectForUpdateNoWaitString
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintLockingClauseAfterWhereClause
public boolean shouldPrintLockingClauseAfterWhereClause()INTERNAL: Indicates whether locking clause should be printed after where clause by SQLSelectStatement. Example: on Oracle platform (method returns true): SELECT ADDRESS_ID, ... FROM ADDRESS WHERE (ADDRESS_ID = ?) FOR UPDATE on SQLServer platform (method returns false): SELECT ADDRESS_ID, ... FROM ADDRESS WITH (UPDLOCK) WHERE (ADDRESS_ID = ?)- Overrides:
shouldPrintLockingClauseAfterWhereClause
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
initializePlatformOperators
protected void initializePlatformOperators()Initialize any platform-specific operators- Overrides:
initializePlatformOperators
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
extractOperator
INTERNAL: Derby does not support EXTRACT, but does have DATEPART. -
trimOperator
INTERNAL: Use RTRIM(LTRIM(?)) function for trim. -
trim2Operator
INTERNAL: Build Trim operator. -
modOperator
Override the default MOD operator. -
singleArgumentSubstringOperator
Override the default SubstringSingleArg operator. -
operatorOuterJoin
-
locate2Operator
INTERNAL: create the Locate2 Operator for this platform -
addMonthsOperator
INTERNAL: Function, to add months to a date. -
inStringOperator
INTERNAL: Build instring operator -
toNumberOperator
INTERNAL: Build Sybase equivalent to TO_NUMBER. -
toDateToStringOperator
INTERNAL: Build Sybase equivalent to TO_CHAR. -
toDateOperator
INTERNAL: Build Sybase equivalent to TO_DATE. -
toCharOperator
INTERNAL: Build Sybase equivalent to TO_CHAR. -
locateOperator
INTERNAL: Build the Sybase equivalent to Locate -
isOutputAllowWithResultSet
public boolean isOutputAllowWithResultSet()INTERNAL: Return true if output parameters can be built with result sets.- Overrides:
isOutputAllowWithResultSet
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
isSQLServer
public boolean isSQLServer()- Specified by:
isSQLServer
in interfaceorg.eclipse.persistence.internal.databaseaccess.Platform
- Overrides:
isSQLServer
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
maximumNumericValues
Builds a table of maximum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
- Overrides:
maximumNumericValues
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
minimumNumericValues
Builds a table of minimum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
- Overrides:
minimumNumericValues
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
printFieldIdentityClause
INTERNAL: Append the receiver's field 'identity' constraint clause to a writer.- Overrides:
printFieldIdentityClause
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
ValidationException
-
printFieldNullClause
INTERNAL: Append the receiver's field 'NULL' constraint clause to a writer.- Overrides:
printFieldNullClause
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
ValidationException
-
requiresProcedureCallBrackets
public boolean requiresProcedureCallBrackets()USed for sp calls.- Overrides:
requiresProcedureCallBrackets
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
requiresProcedureCallOuputToken
public boolean requiresProcedureCallOuputToken()Used for sp calls. Sybase must print output after output params.- Overrides:
requiresProcedureCallOuputToken
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintInOutputTokenBeforeType
public boolean shouldPrintInOutputTokenBeforeType()This is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintInOutputTokenBeforeType
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintOutputTokenBeforeType
public boolean shouldPrintOutputTokenBeforeType()This is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintOutputTokenBeforeType
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldUseJDBCOuterJoinSyntax
public boolean shouldUseJDBCOuterJoinSyntax()JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.- Overrides:
shouldUseJDBCOuterJoinSyntax
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsIdentity
public boolean supportsIdentity()INTERNAL: Indicates whether the platform supports identity. SQLServer does through IDENTITY field types. This method is to be used *ONLY* by sequencing classes- Overrides:
supportsIdentity
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
supportsSequenceObjects
public boolean supportsSequenceObjects()INTERNAL:- Overrides:
supportsSequenceObjects
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
supportsLocalTempTables
public boolean supportsLocalTempTables()INTERNAL:- Overrides:
supportsLocalTempTables
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getCreateTempTableSqlPrefix
INTERNAL:- Overrides:
getCreateTempTableSqlPrefix
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getTempTableForTable
public org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table) INTERNAL:- Overrides:
getTempTableForTable
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Parameters:
table
- is original table for which temp table is created.- Returns:
- temporary table
-
writeUpdateOriginalFromTempTableSql
public void writeUpdateOriginalFromTempTableSql(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException INTERNAL:- Overrides:
writeUpdateOriginalFromTempTableSql
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Parameters:
writer
- for writing the sqltable
- is original table for which temp table is created.pkFields
- primary key fields for the original table.assignedFields
- fields to be assigned a new value.- Throws:
IOException
-
printSQLSelectStatement
public void printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer, org.eclipse.persistence.internal.expressions.SQLSelectStatement statement) Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.- Overrides:
printSQLSelectStatement
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getObjectFromResultSet
public Object getObjectFromResultSet(ResultSet resultSet, int columnNumber, int type, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
INTERNAL: Get the object from the JDBC Result set. Added to allow other platforms to override.- Overrides:
getObjectFromResultSet
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
SQLException
- See Also:
-
- "org.eclipse.persistence.platform.database.oracle.Oracle9Plaform"
-
setParameterValueInDatabaseCall
public void setParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
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.- Overrides:
setParameterValueInDatabaseCall
in 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 Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
INTERNAL Set the parameter in the JDBC statement with the given name. This support a wide range of different parameter types, and is heavily optimized for common types.- Overrides:
setParameterValueInDatabaseCall
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
SQLException
-