Class DB2ZPlatform

java.lang.Object
org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
All Implemented Interfaces:
Serializable, Cloneable, org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>, org.eclipse.persistence.internal.databaseaccess.Platform

public class DB2ZPlatform extends DB2Platform
Purpose: Provides DB2 z/OS specific behavior.

This provides for some additional compatibility in certain DB2 versions.

Responsibilities:

  • Support creating tables that handle multibyte characters
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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Disable binding support.
    Disable binding support.
    DB2 z/OS requires that at least one argument be a known type
    protected Hashtable
    Return the mapping of class types to database types for the schema framework.
    buildProcedureCallString(StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)
    INTERNAL: Used for sp calls.
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS requires that at least one argument be a known type
    getParameterValueFromDatabaseCall(CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session)
    INTERNAL Get the parameter from the JDBC statement with the given name.
    getProcedureArgument(String name, Object parameter, org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType parameterType, StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session)
    Obtain the platform specific argument string
    DB2 on Z uses ":" as prefix for procedure arguments.
    PUBLIC: Get the String used on all table creation statements generated from the DefaultTableGenerator with a session using this project (DDL generation).
    INTERNAL: This method returns the query to select the timestamp from the server for DB2.
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS requires that at least one argument be a known type
    protected void
    INTERNAL: Initialize any platform-specific operators
    DB2 z/OS requires that at least one argument be a known type
    boolean
     
    Disable binding support.
    Disable binding support.
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS support for binding the LIKE ESCAPE character depends on database configuration (mixed vs DBCS).
    Disable binding support.
    Disable binding support.
    Disable binding support.
    Disable binding support.
    Disable binding support.
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS requires that at least one argument be a known type
    DB2 z/OS support for binding the LIKE ESCAPE character depends on database configuration (mixed vs DBCS).
    void
    registerOutputParameter(CallableStatement statement, String name, int jdbcType)
    This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.
    void
    registerOutputParameter(CallableStatement statement, String name, int jdbcType, String typeName)
    This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.
    Disable binding support.
    Disable binding support.
    protected void
    setNullFromDatabaseField(org.eclipse.persistence.internal.helper.DatabaseField databaseField, CallableStatement statement, String name)
     
    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.
    Disable binding support.
    Disable binding support.
    Disable binding support.
    Disable binding support.

    Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

    addBatch, addStructConverter, allowsSizeInProcedureArguments, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, checkTableExists, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, createStruct, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxIndexNameSize, getObjectFromResultSet, getOutputProcedureToken, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgumentString, getProcedureCallTail, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableExistsQuery, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, isCastRequired, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setDriverName, setDriverSupportsNVarChar, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, 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, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsIndexes, supportsIndividualTableLocking, supportsLocalTempTables, supportsNestingOuterJoins, 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, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSql

    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, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeIdentitySequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • DB2ZPlatform

      public DB2ZPlatform()
  • Method Details

    • buildFieldTypes

      protected Hashtable 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 class DB2Platform
    • getTableCreationSuffix

      public String getTableCreationSuffix()
      Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      PUBLIC: Get the String used on all table creation statements generated from the DefaultTableGenerator with a session using this project (DDL generation). This value will be appended to CreationSuffix strings stored on the DatabaseTable or TableDefinition.
      Overrides:
      getTableCreationSuffix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
    • getProcedureArgument

      public String getProcedureArgument(String name, Object parameter, org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType parameterType, StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session)
      Description copied from class: DB2Platform
      Obtain the platform specific argument string
      Overrides:
      getProcedureArgument in class DB2Platform
    • getProcedureOptionList

      public String getProcedureOptionList()
      DB2 on Z uses ":" as prefix for procedure arguments.
      Overrides:
      getProcedureOptionList in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      See Also:
    • getTimestampQuery

      public ValueReadQuery getTimestampQuery()
      INTERNAL: This method returns the query to select the timestamp from the server for DB2.
      Specified by:
      getTimestampQuery in interface org.eclipse.persistence.internal.databaseaccess.Platform
      Overrides:
      getTimestampQuery in class DB2Platform
    • initializePlatformOperators

      protected void initializePlatformOperators()
      INTERNAL: Initialize any platform-specific operators
      Overrides:
      initializePlatformOperators in class DB2Platform
    • avgOperator

      protected ExpressionOperator avgOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • sumOperator

      protected ExpressionOperator sumOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • absOperator

      protected ExpressionOperator absOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • concatOperator

      protected ExpressionOperator concatOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
      Overrides:
      concatOperator in class DB2Platform
    • equalOperator

      protected ExpressionOperator equalOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • notEqualOperator

      protected ExpressionOperator notEqualOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • greaterThanOperator

      protected ExpressionOperator greaterThanOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • greaterThanEqualOperator

      protected ExpressionOperator greaterThanEqualOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • lessThanOperator

      protected ExpressionOperator lessThanOperator()
      DB2 z/OS requires that at least one argument be a known type

      For ALL, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • lessThanEqualOperator

      protected ExpressionOperator lessThanEqualOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • isNullOperator

      protected ExpressionOperator isNullOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • isNotNullOperator

      protected ExpressionOperator isNotNullOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • betweenOperator

      protected ExpressionOperator betweenOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • notBetweenOperator

      protected ExpressionOperator notBetweenOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • likeEscapeOperator

      protected ExpressionOperator likeEscapeOperator()
      DB2 z/OS support for binding the LIKE ESCAPE character depends on database configuration (mixed vs DBCS). Since we cannot know how the database in configured, we will disable parameter binding for the ESCAPE

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • notLikeEscapeOperator

      protected ExpressionOperator notLikeEscapeOperator()
      DB2 z/OS support for binding the LIKE ESCAPE character depends on database configuration (mixed vs DBCS). Since we cannot know how the database in configured, we will disable parameter binding for the ESCAPE

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • locateOperator

      protected ExpressionOperator locateOperator()
      Disable binding support.

      With all binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610

      With some binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
    • locate2Operator

      protected ExpressionOperator locate2Operator()
      Disable binding support.

      With all binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610

      With some binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
    • modOperator

      protected ExpressionOperator modOperator()
      Disable binding support.

      With all binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610

      With some binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
    • sqrtOperator

      protected ExpressionOperator sqrtOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • trimOperator

      protected ExpressionOperator trimOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • trim2

      protected ExpressionOperator trim2()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
      Overrides:
      trim2 in class DB2Platform
    • ltrimOperator

      protected ExpressionOperator ltrimOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • ltrim2Operator

      protected ExpressionOperator ltrim2Operator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
      Overrides:
      ltrim2Operator in class DB2Platform
    • rtrimOperator

      protected ExpressionOperator rtrimOperator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The statement cannot be executed because a parameter marker has been used 
       in an invalid way. DB2 SQL Error: SQLCODE=-418, SQLSTATE=42610
    • rtrim2Operator

      protected ExpressionOperator rtrim2Operator()
      Disable binding support.

      With binding enabled, DB2 z/OS will throw an error:

      The data type, the length, or the value of an argument of a scalar function 
       is incorrect. DB2 SQL Error: SQLCODE=-171, SQLSTATE=42815
      Overrides:
      rtrim2Operator in class DB2Platform
    • inOperator

      protected ExpressionOperator inOperator()
      DB2 z/OS requires that at least one argument be a known type

      With binding enabled, DB2 z/OS will throw an error:

      The statement string specified as the object of a PREPARE contains a 
       predicate or expression where parameter markers have been used as operands of 
       the same operator—for example: ? > ?. DB2 SQL Error: SQLCODE=-417, SQLSTATE=42609
    • isDB2Z

      public boolean isDB2Z()
      Specified by:
      isDB2Z in interface org.eclipse.persistence.internal.databaseaccess.Platform
      Overrides:
      isDB2Z in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
    • buildProcedureCallString

      public String buildProcedureCallString(StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)
      INTERNAL: Used for sp calls. PostGreSQL uses a different method for executing StoredProcedures than other platforms.
      Overrides:
      buildProcedureCallString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
    • registerOutputParameter

      public void registerOutputParameter(CallableStatement statement, String name, int jdbcType) throws SQLException
      This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.
      Overrides:
      registerOutputParameter in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      Throws:
      SQLException
      See Also:
    • registerOutputParameter

      public void registerOutputParameter(CallableStatement statement, String name, int jdbcType, String typeName) throws SQLException
      This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.
      Overrides:
      registerOutputParameter in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      Throws:
      SQLException
      See Also:
    • 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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      Throws:
      SQLException
    • setNullFromDatabaseField

      protected void setNullFromDatabaseField(org.eclipse.persistence.internal.helper.DatabaseField databaseField, CallableStatement statement, String name) throws SQLException
      Overrides:
      setNullFromDatabaseField in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      Throws:
      SQLException
    • getParameterValueFromDatabaseCall

      public Object getParameterValueFromDatabaseCall(CallableStatement statement, String name, org.eclipse.persistence.internal.sessions.AbstractSession session) throws SQLException
      Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      INTERNAL Get the parameter from the JDBC statement with the given name.
      Overrides:
      getParameterValueFromDatabaseCall in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      Throws:
      SQLException