public class SQLServerPlatform extends DatabasePlatform
Purpose: Provides SQL Server specific behavior.
Responsibilities:
DEFAULT_VARCHAR_SIZEDEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, IS_VALID_TIMEOUT, Types_NCLOB, Types_SQLXML| Constructor and Description |
|---|
SQLServerPlatform() |
| Modifier and Type | Method and Description |
|---|---|
ValueReadQuery |
buildSelectQueryForIdentity()
INTERNAL:
Build the identity query for native sequencing.
|
boolean |
dontBindUpdateAllQueryUsingTempTables()
INTERNAL:
In SQLServer local temporary table created by one
PreparedStatement can't be used in another PreparedStatement.
|
java.lang.Object |
executeStoredProcedure(DatabaseCall dbCall,
java.sql.PreparedStatement statement,
DatabaseAccessor accessor,
AbstractSession session)
because each platform has different requirements for accessing stored procedures and
the way that we can combine resultsets and output params the stored procedure call
is being executed on the platform.
|
static ExpressionOperator |
extractOperator()
INTERNAL:
Derby does not support EXTRACT, but does have DATEPART.
|
java.lang.String |
getBatchDelimiterString()
Used for batch writing and sp defs.
|
java.lang.String |
getCreationInOutputProcedureToken()
This method is used to print the required output parameter token for the
specific platform.
|
java.lang.String |
getCreationOutputProcedureToken()
This method is used to print the required output parameter token for the
specific platform.
|
java.lang.String |
getInOutputProcedureToken()
This method is used to print the output parameter token when stored
procedures are called
|
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,
AbstractSession session)
Return the catalog information through using the native SQL catalog selects.
|
java.lang.String |
getOutputProcedureToken()
This method is used to print the output parameter token when stored
procedures are called
|
java.lang.String |
getProcedureArgumentString()
Used for sp defs.
|
java.lang.String |
getProcedureCallHeader()
Used for sp calls.
|
java.lang.String |
getSelectForUpdateNoWaitString()
INTERNAL:
This syntax does no wait on the lock.
|
java.lang.String |
getSelectForUpdateString()
INTERNAL:
Lock.
|
java.lang.String |
getStoredProcedureParameterPrefix() |
java.lang.String |
getStoredProcedureTerminationToken()
INTERNAL:
This method returns the delimiter between stored procedures in multiple stored procedure
calls.
|
DatabaseTable |
getTempTableForTable(DatabaseTable table)
INTERNAL:
|
ValueReadQuery |
getTimestampQuery()
PUBLIC:
This method returns the query to select the timestamp
from the server for SQLServer.
|
boolean |
isSQLServer() |
static ExpressionOperator |
locate2Operator()
INTERNAL:
create the Locate2 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.
|
ExpressionOperator |
modOperator()
Override the default MOD operator.
|
void |
printFieldIdentityClause(java.io.Writer writer)
INTERNAL:
Append the receiver's field 'identity' constraint clause to a writer.
|
void |
printFieldNullClause(java.io.Writer writer)
INTERNAL:
Append the receiver's field 'NULL' constraint clause to a writer.
|
boolean |
requiresProcedureCallBrackets()
USed for sp calls.
|
boolean |
requiresProcedureCallOuputToken()
Used for sp calls.
|
boolean |
shouldPrintInOutputTokenBeforeType()
This is required in the construction of the stored procedures with
output parameters
|
boolean |
shouldPrintLockingClauseAfterWhereClause()
INTERNAL:
Indicates whether locking clause should be printed after where clause by SQLSelectStatement.
|
boolean |
shouldPrintOutputTokenBeforeType()
This is required in the construction of the stored procedures with
output parameters
|
boolean |
shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this.
|
ExpressionOperator |
singleArgumentSubstringOperator()
Override the default SubstringSingleArg operator.
|
boolean |
supportsIdentity()
INTERNAL:
Indicates whether the platform supports identity.
|
boolean |
supportsLocalTempTables()
INTERNAL:
|
static ExpressionOperator |
trim2Operator()
INTERNAL:
Build Trim operator.
|
static ExpressionOperator |
trimOperator()
INTERNAL:
Use RTRIM(LTRIM(?)) function for trim.
|
void |
writeUpdateOriginalFromTempTableSql(java.io.Writer writer,
DatabaseTable table,
java.util.Collection pkFields,
java.util.Collection assignedFields)
INTERNAL:
|
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, executeBatch, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchEndString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureAsString, getProcedureBeginString, getProcedureCallTail, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isLockTimeoutException, isNullAllowedInSelectClause, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldTypeSize, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setCastSizeForVarcharParameter, setCursorCode, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInputTokenAtStart, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsGlobalTempTables, supportsIndexes, supportsIndividualTableLocking, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsStoredFunctions, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeTableCreationSuffixaddSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsSequenceObjects, toString, usesPlatformDefaultSequencepublic ValueReadQuery buildSelectQueryForIdentity()
buildSelectQueryForIdentity in class DatasourcePlatformpublic boolean dontBindUpdateAllQueryUsingTempTables()
dontBindUpdateAllQueryUsingTempTables in class DatabasePlatformpublic java.lang.String getBatchDelimiterString()
getBatchDelimiterString in class DatabasePlatformpublic java.lang.String getCreationInOutputProcedureToken()
getCreationInOutputProcedureToken in class DatabasePlatformpublic java.lang.String getCreationOutputProcedureToken()
getCreationOutputProcedureToken in class DatabasePlatformpublic java.lang.String getInOutputProcedureToken()
getInOutputProcedureToken in class DatabasePlatformpublic int getMaxFieldNameSize()
getMaxFieldNameSize in class DatabasePlatformpublic java.util.Vector getNativeTableInfo(java.lang.String table,
java.lang.String creator,
AbstractSession session)
public java.lang.String getOutputProcedureToken()
getOutputProcedureToken in class DatabasePlatformpublic java.lang.String getProcedureArgumentString()
getProcedureArgumentString in class DatabasePlatformpublic java.lang.String getProcedureCallHeader()
getProcedureCallHeader in class DatabasePlatformpublic java.lang.String getStoredProcedureParameterPrefix()
getStoredProcedureParameterPrefix in class DatabasePlatformpublic java.lang.String getStoredProcedureTerminationToken()
getStoredProcedureTerminationToken in class DatabasePlatformpublic ValueReadQuery getTimestampQuery()
getTimestampQuery in interface PlatformgetTimestampQuery in class DatasourcePlatformpublic java.lang.String getSelectForUpdateString()
getSelectForUpdateString in class DatabasePlatformpublic java.lang.String getSelectForUpdateNoWaitString()
getSelectForUpdateNoWaitString in class DatabasePlatformpublic java.lang.Object executeStoredProcedure(DatabaseCall dbCall, java.sql.PreparedStatement statement, DatabaseAccessor accessor, AbstractSession session) throws java.sql.SQLException
executeStoredProcedure in class DatabasePlatformjava.sql.SQLExceptionpublic boolean shouldPrintLockingClauseAfterWhereClause()
shouldPrintLockingClauseAfterWhereClause in class DatabasePlatformpublic static ExpressionOperator extractOperator()
public static ExpressionOperator trimOperator()
public static ExpressionOperator trim2Operator()
public boolean isSQLServer()
isSQLServer in interface PlatformisSQLServer in class DatasourcePlatformpublic java.util.Hashtable maximumNumericValues()
NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
maximumNumericValues in class DatabasePlatformpublic java.util.Hashtable minimumNumericValues()
NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
minimumNumericValues in class DatabasePlatformpublic ExpressionOperator modOperator()
public ExpressionOperator singleArgumentSubstringOperator()
public static ExpressionOperator locate2Operator()
public void printFieldIdentityClause(java.io.Writer writer)
throws ValidationException
printFieldIdentityClause in class DatabasePlatformValidationExceptionpublic void printFieldNullClause(java.io.Writer writer)
throws ValidationException
printFieldNullClause in class DatabasePlatformValidationExceptionpublic boolean requiresProcedureCallBrackets()
requiresProcedureCallBrackets in class DatabasePlatformpublic boolean requiresProcedureCallOuputToken()
requiresProcedureCallOuputToken in class DatabasePlatformpublic boolean shouldPrintInOutputTokenBeforeType()
shouldPrintInOutputTokenBeforeType in class DatabasePlatformpublic boolean shouldPrintOutputTokenBeforeType()
shouldPrintOutputTokenBeforeType in class DatabasePlatformpublic boolean shouldUseJDBCOuterJoinSyntax()
shouldUseJDBCOuterJoinSyntax in class DatabasePlatformpublic boolean supportsIdentity()
supportsIdentity in class DatasourcePlatformpublic boolean supportsLocalTempTables()
supportsLocalTempTables in class DatabasePlatformpublic DatabaseTable getTempTableForTable(DatabaseTable table)
getTempTableForTable in class DatabasePlatformpublic void writeUpdateOriginalFromTempTableSql(java.io.Writer writer,
DatabaseTable table,
java.util.Collection pkFields,
java.util.Collection assignedFields)
throws java.io.IOException
writeUpdateOriginalFromTempTableSql in class DatabasePlatformjava.io.IOExceptionEclipseLink 2.4.2, "build v20130514-5956486" API Reference