Class PLSQLStoredProcedureCall

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Call
    Direct Known Subclasses:
    PLSQLStoredFunctionCall

    public class PLSQLStoredProcedureCall
    extends StoredProcedureCall
    Purpose: Generates an Anonymous PL/SQL block to invoke the specified Stored Procedure with arguments that may or may not have JDBC equivalents. This handles conversion of PLSQL Record and Table types into SQL ARRAY (VARRAY) and STRUCT (OBJECT TYPE). It also handles conversion of flat PLSQL Record types and PLSQL BOOLEAN and other basic types.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.List<PLSQLargument> arguments
      List of procedure IN/OUT/INOUT arguments.
      protected int functionId
      Id used to generate unique local functions.
      protected int originalIndex
      Keeps track of the next procedure argument index.
      protected org.eclipse.persistence.internal.sessions.AbstractRecord translationRow
      Translation row stored after translation on the call clone, used only for logging.
      protected java.util.Map<java.lang.String,​org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo> typesInfo
      Map of conversion function routines for converting complex PLSQL types.
      • Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabaseCall

        executeReturnValue, fields, fieldsArray, firstResult, FIRSTRESULT_FIELD, generatedKeys, hasAllocatedConnection, hasMultipleResultSets, hasOptimisticLock, ignoreFirstRowSetting, ignoreMaxResultsSetting, isBatchExecutionSupported, isCallableStatementRequired, isCursorOutputProcedure, isFieldMatchingRequired, isMultipleCursorOutputProcedure, isResultSetScrollable, MAXROW_FIELD, maxRows, queryTimeout, queryTimeoutUnit, result, resultSetConcurrency, resultSetFetchSize, resultSetType, returnMultipleResultSetCollections, returnsResultSet, shouldBuildOutputRow, shouldCacheStatement, shouldReturnGeneratedKeys, sqlString, statement, usesBinding
      • Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        EXECUTE_UPDATE, isNativeConnectionRequired, isPrepared, NO_RETURN, outputCursors, parameterBindings, parameters, parameterTypes, query, RETURN_CURSOR, RETURN_MANY_ROWS, RETURN_ONE_ROW, returnType, shouldProcessTokenInQuotes
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNamedArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type)
      PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType)
      PUBLIC: Add a named IN argument to the stored procedure.
      void addNamedArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int length)
      PUBLIC: Add a named IN argument to the stored procedure.
      void addNamedArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int precision, int scale)
      PUBLIC: Add a named IN argument to the stored procedure.
      void addNamedArgumentValue​(java.lang.String procedureParameterName, java.lang.Object argumentValue)
      PUBLIC: Define the argument to the stored procedure and the value to be substitute for it.
      void addNamedInOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class classType)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType)
      PUBLIC: Add a named IN OUT argument to the stored procedure.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int length)
      PUBLIC: Add a named IN OUT argument to the stored procedure.
      void addNamedInOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int precision, int scale)
      PUBLIC: Add a named IN OUT argument to the stored procedure.
      void addNamedInOutputArgumentValue​(java.lang.String procedureParameterName, java.lang.Object inArgumentValue, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out.
      void addNamedOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType)
      PUBLIC: Add a named OUT argument to the stored procedure.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int length)
      PUBLIC: Add a named OUT argument to the stored procedure.
      void addNamedOutputArgument​(java.lang.String procedureParameterName, org.eclipse.persistence.internal.helper.DatabaseType databaseType, int precision, int scale)
      PUBLIC: Add a named OUT argument to the stored procedure.
      protected void addNestedFunctionsForArgument​(java.util.List functions, PLSQLargument argument, org.eclipse.persistence.internal.helper.DatabaseType databaseType, java.util.Set<org.eclipse.persistence.internal.helper.DatabaseType> processed)
      INTERNAL Add the nested function string required for the type and its subtypes.
      void addUnamedArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the field/argument name to be substitute for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedArgumentValue​(java.lang.Object argumentValue)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class collection)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, int type, java.lang.String typeName, java.lang.Class collection, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the argument to the stored procedure for the index argument.
      void addUnamedInOutputArgumentValue​(java.lang.Object inArgumentValue, java.lang.String outArgumentFieldName, java.lang.Class type)
      PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int type)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int type, java.lang.String typeName)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, int jdbcType, java.lang.String typeName, java.lang.Class javaType, org.eclipse.persistence.internal.helper.DatabaseField nestedType)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      void addUnamedOutputArgument​(java.lang.String argumentFieldName, java.lang.Class type)
      PUBLIC: Define the field/argument name to be substitute for the index output argument.
      protected void assignIndices()
      INTERNAL compute the re-ordered indices - Do the IN args first, then the 'IN-half' of the INOUT args next, the OUT args, then the 'OUT-half' of the INOUT args
      protected void buildBeginBlock​(java.lang.StringBuilder sb, java.util.List<PLSQLargument> arguments)
      INTERNAL Generate portion of the Anonymous PL/SQL block that assigns fields at the beginning of the BEGIN block (before invoking the target procedure).
      protected void buildDeclareBlock​(java.lang.StringBuilder sb, java.util.List<PLSQLargument> arguments)
      INTERNAL Generate portion of the Anonymous PL/SQL block that declares the temporary variables in the DECLARE section.
      protected void buildNestedFunctions​(java.lang.StringBuilder stream, java.util.List<PLSQLargument> arguments)
      INTERNAL Generate portion of the Anonymous PL/SQL block with PL/SQL conversion routines as nested functions.
      protected void buildOutAssignments​(java.lang.StringBuilder sb, java.util.List<PLSQLargument> arguments)
      INTERNAL Generate portion of the Anonymous PL/SQL block after the target procedures has been invoked and OUT parameters must be handled.
      org.eclipse.persistence.internal.sessions.AbstractRecord buildOutputRow​(java.sql.CallableStatement statement, org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor, org.eclipse.persistence.internal.sessions.AbstractSession session)
      Translate the SQL procedure output row, into the row expected by the PLSQL procedure.
      protected void buildProcedureInvocation​(java.lang.StringBuilder sb, java.util.List<PLSQLargument> arguments)
      INTERNAL Generate portion of the Anonymous PL/SQL block that invokes the target procedure.
      protected org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo generateNestedFunction​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
      INTERNAL: Generate the nested function to convert the PLSQL type to its compatible SQL type.
      protected org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo generateNestedFunction​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type, boolean isNonAssociativeCollection)
      INTERNAL: Generate the nested function to convert the PLSQL type to its compatible SQL type.
      java.util.List<PLSQLargument> getArguments()
      Return the PLSQL arguments.
      protected static java.util.List<PLSQLargument> getArguments​(java.util.List<PLSQLargument> args, java.lang.Integer direction)
      INTERNAL
      protected static java.util.List<PLSQLargument> getArguments​(java.util.List<PLSQLargument> args, org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType direction)
      INTERNAL
      java.lang.String getLogString​(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
      INTERNAL: Build the log string for the call.
      java.lang.Object getOutputParameterValue​(java.sql.CallableStatement statement, int index, org.eclipse.persistence.internal.sessions.AbstractSession session)  
      java.lang.String getPl2SQLName​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
      Return the conversion function name, generate the function if missing.
      java.lang.String getSQL2PlName​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
      Return the conversion function name, generate the function if missing.
      boolean isStoredPLSQLProcedureCall()  
      protected void prepareInternal​(org.eclipse.persistence.internal.sessions.AbstractSession session)
      Generate the Anonymous PL/SQL block
      java.sql.Statement prepareStatement​(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Prepare the JDBC statement, this may be parameterize or a call statement.
      void setArguments​(java.util.List<PLSQLargument> arguments)
      Set the PLSQL arguments.
      void translate​(org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow, org.eclipse.persistence.internal.sessions.AbstractSession session)
      Translate the PLSQL procedure translation row, into the row expected by the SQL procedure.
      void useNamedCursorOutputAsResultSet​(java.lang.String argumentName)
      PUBLIC: Used for Oracle result sets through procedures.
      void useNamedCursorOutputAsResultSet​(java.lang.String argumentName, org.eclipse.persistence.internal.helper.DatabaseType databaseType)
      PUBLIC: Add a named OUT cursor argument to the stored procedure.
      void useUnnamedCursorOutputAsResultSet()
      PUBLIC: Used for Oracle result sets through procedures.
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabaseCall

        addContext, appendLogParameters, appendParameter, buildNewQueryMechanism, buildQueryMechanism, createInOutParameter, getCallString, getContexts, getCursorOutIndex, getExecuteReturnValue, getFields, getFieldsArray, getFieldWithTypeFromDescriptor, getFirstResult, getGeneratedKeys, getMaxRows, getOutputParameterValue, getOutputRowFields, getQueryString, getQueryTimeout, getResult, getResultSetConcurrency, getResultSetFetchSize, getResultSetType, getReturnsResultSet, getSQLString, getStatement, hasAllocatedConnection, hasMultipleResultSets, hasOptimisticLock, isBatchExecutionSupported, isCursorOutputProcedure, isCursorReturned, isDynamicCall, isFieldMatchingRequired, isFinished, isLOBLocatorNeeded, isMultipleCursorOutputProcedure, isNonCursorOutputProcedure, isResultSetScrollable, matchFieldOrder, prepare, prepareInternalParameters, returnMultipleResultSetCollections, setBatchExecutionSupported, setContexts, setExecuteReturnValue, setFields, setFirstResult, setGeneratedKeys, setHasAllocatedConnection, setHasOptimisticLock, setIgnoreFirstRowSetting, setIgnoreMaxResultsSetting, setIsCallableStatementRequired, setIsCursorOutputProcedure, setIsFieldMatchingRequired, setIsMultipleCursorOutputProcedure, setIsResultSetScrollable, setMaxRows, setQueryString, setQueryTimeout, setQueryTimeoutUnit, setResult, setResultSetConcurrency, setResultSetFetchSize, setResultSetType, setReturnMultipleResultSetCollections, setShouldBuildOutputRow, setShouldCacheStatement, setShouldReturnGeneratedKeys, setSQLStringInternal, setStatement, shouldBuildOutputRow, shouldCacheStatement, shouldCacheStatement, shouldIgnoreFirstRowSetting, shouldIgnoreMaxResultsSetting, shouldReturnGeneratedKeys
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourceCall

        appendIn, appendIn, appendIn, appendInOut, appendInOut, appendInOut, appendInOut, appendInOut, appendLiteral, appendLiteral, appendLiteral, appendModify, appendModify, appendModify, appendOut, appendOut, appendOut, appendOutCursor, appendOutCursor, appendTranslation, appendTranslation, appendTranslation, areManyRowsReturned, argumentMarker, clone, createField, getOutputCursors, getParameterBindings, getParameters, getParameterTypes, getQuery, getReturnType, getValueForInOutParameter, getValueForInParameter, hasOutputCursors, hasParameters, isEISInteraction, isExecuteUpdate, isJPQLCall, isNativeConnectionRequired, isNothingReturned, isOneRowReturned, isOutputParameterType, isPrepared, isQueryStringCall, isReturnSet, isSQLCall, isStoredFunctionCall, isStoredPLSQLFunctionCall, isUsesBindingSet, returnCursor, returnManyRows, returnNothing, returnOneRow, setExecuteUpdate, setIsNativeConnectionRequired, setIsPrepared, setParameterBindings, setParameters, setParameterTypes, setQuery, setReturnType, setUsesBinding, translateCustomQuery, translatePureSQLCustomQuery, translateQueryString, translateQueryStringAndBindParameters, translateQueryStringForParameterizedIN, usesBinding, usesBinding, usesBinding, whitespace
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • arguments

        protected java.util.List<PLSQLargument> arguments
        List of procedure IN/OUT/INOUT arguments.
      • originalIndex

        protected int originalIndex
        Keeps track of the next procedure argument index.
      • translationRow

        protected org.eclipse.persistence.internal.sessions.AbstractRecord translationRow
        Translation row stored after translation on the call clone, used only for logging.
      • typesInfo

        protected java.util.Map<java.lang.String,​org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo> typesInfo
        Map of conversion function routines for converting complex PLSQL types.
      • functionId

        protected int functionId
        Id used to generate unique local functions.
    • Constructor Detail

      • PLSQLStoredProcedureCall

        public PLSQLStoredProcedureCall()
    • Method Detail

      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     org.eclipse.persistence.internal.helper.DatabaseType databaseType)
        PUBLIC: Add a named IN argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex)
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                     int length)
        PUBLIC: Add a named IN argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra length parameter indicates that this parameter, when used in an Anonymous PL/SQL block, requires a length.
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                     int precision,
                                     int scale)
        PUBLIC: Add a named IN argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra scale and precision parameters indicates that this parameter, when used in an Anonymous PL/SQL block, requires scale and precision specification
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the input argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the user. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure.
        Overrides:
        addNamedArgument in class StoredProcedureCall
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName,
                                     int type,
                                     java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addNamedArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             org.eclipse.persistence.internal.helper.DatabaseType databaseType)
        PUBLIC: Add a named IN OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex)
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                             int length)
        PUBLIC: Add a named IN OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra length parameter indicates that this parameter, when used in an Anonymous PL/SQL block, requires a length.
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                             int precision,
                                             int scale)
        PUBLIC: Add a named IN OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra scale and precision parameters indicates that this parameter, when used in an Anonymous PL/SQL block, requires scale and precision specification
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName,
                                             java.lang.Class classType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for STRUCT and ARRAY types. The classType is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             int type,
                                             java.lang.String typeName,
                                             java.lang.Class javaType,
                                             org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           org.eclipse.persistence.internal.helper.DatabaseType databaseType)
        PUBLIC: Add a named OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex)
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                           int length)
        PUBLIC: Add a named OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra length parameter indicates that this parameter, when used in an Anonymous PL/SQL block, requires a length.
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                           int precision,
                                           int scale)
        PUBLIC: Add a named OUT argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex). The extra scale and precision parameters indicates that this parameter, when used in an Anonymous PL/SQL block, requires scale and precision specification
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int jdbcType,
                                           java.lang.String typeName,
                                           java.lang.Class javaType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int jdbcType,
                                           java.lang.String typeName,
                                           java.lang.Class javaType,
                                           org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int type,
                                           java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, and is the field or argument name to be used to pass to the procedure. These names are assumed to be the same, if not this method can be called with two arguments.
        Overrides:
        addNamedArgument in class StoredProcedureCall
      • addNamedArgumentValue

        public void addNamedArgumentValue​(java.lang.String procedureParameterName,
                                          java.lang.Object argumentValue)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure and the value to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentValue is the value of the argument to be used to pass to the procedure.
        Overrides:
        addNamedArgumentValue in class StoredProcedureCall
      • addNamedArgument

        public void addNamedArgument​(java.lang.String procedureParameterName,
                                     java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument.
        Overrides:
        addNamedArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, the field or argument name to be used to pass to the procedure and, the field or argument name to be used is the result of the output row.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure and is the result of the output row.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String argumentFieldName,
                                             java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure and is the result of the output row. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgument

        public void addNamedInOutputArgument​(java.lang.String procedureParameterName,
                                             java.lang.String inArgumentFieldName,
                                             java.lang.String outArgumentFieldName,
                                             java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type the Java class desired back from the procedure, if a struct is returned and the class has an ObjectRelationalDataTypeDescriptor defined .
        Overrides:
        addNamedInOutputArgument in class StoredProcedureCall
      • addNamedInOutputArgumentValue

        public void addNamedInOutputArgumentValue​(java.lang.String procedureParameterName,
                                                  java.lang.Object inArgumentValue,
                                                  java.lang.String outArgumentFieldName,
                                                  java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure and the field/argument name to be substitute for it on the way in and out. The procedureParameterName is the name of the procedure argument expected. The inArgumentValue is the value of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addNamedInOutputArgumentValue in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterAndArgumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterAndArgumentFieldName is the name of the procedure argument expected, and is the field or argument name to be used to pass to the procedure. These names are assumed to be the same, if not this method can be called with two arguments.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • addNamedOutputArgument

        public void addNamedOutputArgument​(java.lang.String procedureParameterName,
                                           java.lang.String argumentFieldName,
                                           java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the output argument to the stored procedure and the field/argument name to be substitute for it. The procedureParameterName is the name of the procedure argument expected. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addNamedOutputArgument in class StoredProcedureCall
      • useNamedCursorOutputAsResultSet

        public void useNamedCursorOutputAsResultSet​(java.lang.String argumentName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Used for Oracle result sets through procedures. This can only be used if the arguments are not named but ordered.
        Overrides:
        useNamedCursorOutputAsResultSet in class StoredProcedureCall
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the user. The type is the type of Java class for the field, and is dependent on the type required by the procedure. This is used to set the type in case null is passed in.
        Overrides:
        addUnamedArgument in class StoredProcedureCall
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type,
                                      java.lang.String typeName,
                                      org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, as required for STRUCT and ARRAY types. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
        Overrides:
        addUnamedArgument in class StoredProcedureCall
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type,
                                      java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addUnamedArgument in class StoredProcedureCall
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName,
                                      int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the user. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type required by the procedure.
        Overrides:
        addUnamedArgument in class StoredProcedureCall
      • addUnamedArgument

        public void addUnamedArgument​(java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure.
        Overrides:
        addUnamedArgument in class StoredProcedureCall
      • addUnamedArgumentValue

        public void addUnamedArgumentValue​(java.lang.Object argumentValue)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentValue is the value of the argument to be used to pass to the procedure.
        Overrides:
        addUnamedArgumentValue in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String argumentFieldName,
                                              java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field name of the argument to be used to pass to the procedure and to be used is the result of the output row. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName,
                                              java.lang.Class collection,
                                              org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName,
                                              java.lang.Class collection)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field or argument name to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY types. The collectionClass is the java class to return instead of the ARRAY type.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type,
                                              java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String inArgumentFieldName,
                                              java.lang.String outArgumentFieldName,
                                              int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the argument to the stored procedure for the index argument. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentFieldName is the field name of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the JDBC type code, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgument

        public void addUnamedInOutputArgument​(java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The argumentFieldName is the field name of the argument to be used to pass to the procedure and to be used is the result of the output row.
        Overrides:
        addUnamedInOutputArgument in class StoredProcedureCall
      • addUnamedInOutputArgumentValue

        public void addUnamedInOutputArgumentValue​(java.lang.Object inArgumentValue,
                                                   java.lang.String outArgumentFieldName,
                                                   java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the inoutput argument to the stored procedure for the index argument and the field/argument name to be substitute for it on the way in and out. This method is used if the procedure is not named and the order is explicit, arguments must be added in the correct order. The inArgumentValue is the value of the argument to be used to pass to the procedure. The outArgumentFieldName is the field or argument name to be used is the result of the output row. If these names are the same (as they normally are) this method can be called with a single argument. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedInOutputArgumentValue in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            java.lang.Class type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int jdbcType,
                                            java.lang.String typeName,
                                            java.lang.Class javaType,
                                            org.eclipse.persistence.internal.helper.DatabaseField nestedType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible. The nestedType is a DatabaseField with type information set to match the VARRAYs object types
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int jdbcType,
                                            java.lang.String typeName,
                                            java.lang.Class javaType)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used is the result of the output row. The jdbcType is the JDBC type code, this dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types. The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int type,
                                            java.lang.String typeName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the JDBC type code, this is dependent on the type returned from the procedure. The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName,
                                            int type)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the JDBC type code, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • addUnamedOutputArgument

        public void addUnamedOutputArgument​(java.lang.String argumentFieldName)
        Description copied from class: StoredProcedureCall
        PUBLIC: Define the field/argument name to be substitute for the index output argument. This method is used if the procedure is not named and the order is explicit, names must be added in the correct order. The argumentFieldName is the field or argument name to be used to pass to the procedure. The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
        Overrides:
        addUnamedOutputArgument in class StoredProcedureCall
      • useNamedCursorOutputAsResultSet

        public void useNamedCursorOutputAsResultSet​(java.lang.String argumentName,
                                                    org.eclipse.persistence.internal.helper.DatabaseType databaseType)
        PUBLIC: Add a named OUT cursor argument to the stored procedure. The databaseType parameter classifies the parameter (JDBCType vs. OraclePLSQLType, simple vs. complex).
      • assignIndices

        protected void assignIndices()
        INTERNAL compute the re-ordered indices - Do the IN args first, then the 'IN-half' of the INOUT args next, the OUT args, then the 'OUT-half' of the INOUT args
      • buildDeclareBlock

        protected void buildDeclareBlock​(java.lang.StringBuilder sb,
                                         java.util.List<PLSQLargument> arguments)
        INTERNAL Generate portion of the Anonymous PL/SQL block that declares the temporary variables in the DECLARE section.
      • addNestedFunctionsForArgument

        protected void addNestedFunctionsForArgument​(java.util.List functions,
                                                     PLSQLargument argument,
                                                     org.eclipse.persistence.internal.helper.DatabaseType databaseType,
                                                     java.util.Set<org.eclipse.persistence.internal.helper.DatabaseType> processed)
        INTERNAL Add the nested function string required for the type and its subtypes. The functions must be added in inverse order to resolve dependencies.
      • generateNestedFunction

        protected org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo generateNestedFunction​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
        INTERNAL: Generate the nested function to convert the PLSQL type to its compatible SQL type.
      • generateNestedFunction

        protected org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall.TypeInfo generateNestedFunction​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type,
                                                                                                                                  boolean isNonAssociativeCollection)
        INTERNAL: Generate the nested function to convert the PLSQL type to its compatible SQL type.
      • buildNestedFunctions

        protected void buildNestedFunctions​(java.lang.StringBuilder stream,
                                            java.util.List<PLSQLargument> arguments)
        INTERNAL Generate portion of the Anonymous PL/SQL block with PL/SQL conversion routines as nested functions.
      • buildBeginBlock

        protected void buildBeginBlock​(java.lang.StringBuilder sb,
                                       java.util.List<PLSQLargument> arguments)
        INTERNAL Generate portion of the Anonymous PL/SQL block that assigns fields at the beginning of the BEGIN block (before invoking the target procedure).
      • buildProcedureInvocation

        protected void buildProcedureInvocation​(java.lang.StringBuilder sb,
                                                java.util.List<PLSQLargument> arguments)
        INTERNAL Generate portion of the Anonymous PL/SQL block that invokes the target procedure.
      • buildOutAssignments

        protected void buildOutAssignments​(java.lang.StringBuilder sb,
                                           java.util.List<PLSQLargument> arguments)
        INTERNAL Generate portion of the Anonymous PL/SQL block after the target procedures has been invoked and OUT parameters must be handled.
      • prepareInternal

        protected void prepareInternal​(org.eclipse.persistence.internal.sessions.AbstractSession session)
        Generate the Anonymous PL/SQL block
        Overrides:
        prepareInternal in class StoredProcedureCall
      • prepareStatement

        public java.sql.Statement prepareStatement​(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
                                                   org.eclipse.persistence.internal.sessions.AbstractRecord translationRow,
                                                   org.eclipse.persistence.internal.sessions.AbstractSession session)
                                            throws java.sql.SQLException
        INTERNAL: Prepare the JDBC statement, this may be parameterize or a call statement. If caching statements this must check for the pre-prepared statement and re-bind to it.
        Overrides:
        prepareStatement in class StoredProcedureCall
        Throws:
        java.sql.SQLException
      • translate

        public void translate​(org.eclipse.persistence.internal.sessions.AbstractRecord translationRow,
                              org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow,
                              org.eclipse.persistence.internal.sessions.AbstractSession session)
        Translate the PLSQL procedure translation row, into the row expected by the SQL procedure. This handles expanding and re-ordering parameters.
        Overrides:
        translate in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
      • buildOutputRow

        public org.eclipse.persistence.internal.sessions.AbstractRecord buildOutputRow​(java.sql.CallableStatement statement,
                                                                                       org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
                                                                                       org.eclipse.persistence.internal.sessions.AbstractSession session)
                                                                                throws java.sql.SQLException
        Translate the SQL procedure output row, into the row expected by the PLSQL procedure. This handles re-ordering parameters.
        Overrides:
        buildOutputRow in class org.eclipse.persistence.internal.databaseaccess.DatabaseCall
        Throws:
        java.sql.SQLException
      • getLogString

        public java.lang.String getLogString​(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
        INTERNAL: Build the log string for the call.
        Specified by:
        getLogString in interface Call
        Overrides:
        getLogString in class StoredProcedureCall
      • getArguments

        protected static java.util.List<PLSQLargument> getArguments​(java.util.List<PLSQLargument> args,
                                                                    java.lang.Integer direction)
        INTERNAL
        Parameters:
        args -
        direction -
        Returns:
        list of arguments with the specified direction
      • getArguments

        protected static java.util.List<PLSQLargument> getArguments​(java.util.List<PLSQLargument> args,
                                                                    org.eclipse.persistence.internal.databaseaccess.DatasourceCall.ParameterType direction)
        INTERNAL
        Parameters:
        args -
        direction -
        Returns:
        list of arguments with the specified direction
      • getSQL2PlName

        public java.lang.String getSQL2PlName​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
        Return the conversion function name, generate the function if missing.
      • isStoredPLSQLProcedureCall

        public boolean isStoredPLSQLProcedureCall()
        Overrides:
        isStoredPLSQLProcedureCall in class org.eclipse.persistence.internal.databaseaccess.DatasourceCall
      • getPl2SQLName

        public java.lang.String getPl2SQLName​(org.eclipse.persistence.internal.helper.ComplexDatabaseType type)
        Return the conversion function name, generate the function if missing.
      • getOutputParameterValue

        public java.lang.Object getOutputParameterValue​(java.sql.CallableStatement statement,
                                                        int index,
                                                        org.eclipse.persistence.internal.sessions.AbstractSession session)
                                                 throws java.sql.SQLException
        Overrides:
        getOutputParameterValue in class StoredProcedureCall
        Throws:
        java.sql.SQLException
      • getArguments

        public java.util.List<PLSQLargument> getArguments()
        Return the PLSQL arguments.
      • setArguments

        public void setArguments​(java.util.List<PLSQLargument> arguments)
        Set the PLSQL arguments.