com.ibm.as400.access

Class AS400JDBCPreparedStatementImpl

  • All Implemented Interfaces:
    java.sql.PreparedStatement, java.sql.Statement, java.sql.Wrapper
    Direct Known Subclasses:
    AS400JDBCCallableStatement


    public class AS400JDBCPreparedStatementImpl
    extends AS400JDBCPreparedStatement

    The AS400JDBCPreparedStatement class precompiles and stores an SQL statement. This provides the ability to efficiently run the statement multiple times. In addition, the statement may contain parameters. Use Connection.prepareStatement() to create new PreparedStatement objects.

    When setting input parameter values, the caller must specify types that are compatible with the defined SQL type of the input parameter. For example, if the input parameter has SQL type INTEGER, then the caller must call setInt() to set the IN parameter value. If arbitrary type conversions are required, then use setObject() with a target SQL type.

    For method that sets parameters, the application should not modify the parameter value until after the execute completes. Modifying a value between the setXXXX method and the execute method may result in unpredictable behavior.

    • Field Summary

      • Fields inherited from interface java.sql.Statement

        CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      void addBatch()
      Adds the set of parameters to the current batch.
      void addBatch(java.lang.String sql)
      Adds an SQL statement to the current batch of SQL statements.
      void clearParameters()
      Releases the resources used by the current input parameter values.
      void close()
      Releases the prepared statement's resources immediately instead of waiting for them to be automatically released.
      boolean execute()
      Runs an SQL statement that may return multiple result sets.
      boolean execute(java.lang.String sql)
      Runs an SQL statement that may return multiple result sets.
      boolean execute(java.lang.String sql, int autoGeneratedKeys)
      Runs an SQL statement that may return multiple result sets and makes any auto-generated keys available for retrieval using Statement.getGeneratedKeys().
      boolean execute(java.lang.String sql, int[] columns)
      Runs an SQL statement that may return multiple result sets and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys().
      boolean execute(java.lang.String sql, java.lang.String[] columnNames)
      Runs an SQL statement that may return multiple result sets and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys().
      int[] executeBatch()
      Runs the batch of SQL statements.
      long executeLargeUpdate()
      Executes the SQL statement in this PreparedStatement object, which must be an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.
      long executeLargeUpdate(java.lang.String sql)
      Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
      long executeLargeUpdate(java.lang.String sql, int autoGeneratedKeys)
      Executes the given SQL statement and signals the driver with the given flag about whether the auto-generated keys produced by this Statement object should be made available for retrieval.
      long executeLargeUpdate(java.lang.String sql, int[] columnIndexes)
      Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
      long executeLargeUpdate(java.lang.String sql, java.lang.String[] columnNames)
      Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval.
      java.sql.ResultSet executeQuery()
      Runs the SQL statement that returns a single result set.
      java.sql.ResultSet executeQuery(java.lang.String sql)
      Runs an SQL statement that returns a single result set.
      int executeUpdate()
      Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set.
      int executeUpdate(java.lang.String sql)
      Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set.
      int executeUpdate(java.lang.String sql, int autoGeneratedKeys)
      Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys available for retrieval using Statement.getGeneratedKeys().
      int executeUpdate(java.lang.String sql, int[] columns)
      Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys().
      int executeUpdate(java.lang.String sql, java.lang.String[] columnNames)
      Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys().
      java.lang.String getDB2ParameterName(int parm)
      Return the name of the parameter for a stored procedure call.
      java.sql.ResultSetMetaData getMetaData()
      Returns the ResultSetMetaData object that describes the result set's columns.
      java.sql.ParameterMetaData getParameterMetaData()
      Returns the number, types, and properties of a PreparedStatement object's parameters.
      protected java.lang.String[] getValidWrappedList() 
      void setArray(int parameterIndex, java.sql.Array parameterValue)
      Sets an input parameter to an Array value.
      void setAsciiStream(int parameterIndex, java.io.InputStream x)
      Sets the designated parameter to the given input stream.
      void setAsciiStream(int parameterIndex, java.io.InputStream parameterValue, int length)
      Sets an input parameter to an ASCII stream value.
      void setAsciiStream(int parameterIndex, java.io.InputStream x, long length)
      Sets the designated parameter to the given input stream, which will have the specified number of bytes.
      void setBigDecimal(int parameterIndex, java.math.BigDecimal parameterValue)
      Sets an input parameter to a BigDecimal value.
      void setBinaryStream(int parameterIndex, java.io.InputStream x)
      Sets the designated parameter to the given input stream.
      void setBinaryStream(int parameterIndex, java.io.InputStream parameterValue, int length)
      Sets an input parameter to a binary stream value.
      void setBinaryStream(int parameterIndex, java.io.InputStream x, long length)
      Sets the designated parameter to the given input stream, which will have the specified number of bytes.
      void setBlob(int parameterIndex, java.sql.Blob parameterValue)
      Sets an input parameter to a Blob value.
      void setBlob(int parameterIndex, java.io.InputStream inputStream)
      Sets the designated parameter to a InputStream object.
      void setBlob(int parameterIndex, java.io.InputStream inputStream, long length)
      Sets the designated parameter to an InputStream object.
      void setBoolean(int parameterIndex, boolean parameterValue)
      Sets an input parameter to a Java boolean value.
      void setByte(int parameterIndex, byte parameterValue)
      Sets an input parameter to a Java byte value.
      void setBytes(int parameterIndex, byte[] parameterValue)
      Sets an input parameter to a Java byte array value.
      void setCharacterStream(int parameterIndex, java.io.Reader reader)
      Sets the designated parameter to the given Reader object.
      void setCharacterStream(int parameterIndex, java.io.Reader parameterValue, int length)
      Sets an input parameter to a character stream value.
      void setCharacterStream(int parameterIndex, java.io.Reader reader, long length)
      Sets the designated parameter to the given Reader object, which is the given number of characters long.
      void setClob(int parameterIndex, java.sql.Clob parameterValue)
      Sets an input parameter to a Clob value.
      void setClob(int parameterIndex, java.io.Reader reader)
      Sets the designated parameter to a Reader object.
      void setClob(int parameterIndex, java.io.Reader reader, long length)
      Sets the designated parameter to a Reader object.
      void setDate(int parameterIndex, java.sql.Date parameterValue)
      Sets an input parameter to a java.sql.Date value using the default calendar.
      void setDate(int parameterIndex, java.sql.Date parameterValue, java.util.Calendar calendar)
      Sets an input parameter to a java.sql.Date value using a calendar other than the default.
      void setDB2Default(int parameterIndex)
      Sets an input parameter to the default value
      void setDB2Unassigned(int parameterIndex)
      Sets an input parameter to unassigned
      void setDBDefault(int parameterIndex)
      Sets an input parameter to the default value.
      void setDBUnassigned(int parameterIndex)
      Sets an input parameter to unassigned.
      void setDouble(int parameterIndex, double parameterValue)
      Sets an input parameter to a Java double value.
      void setFloat(int parameterIndex, float parameterValue)
      Sets an input parameter to a Java float value.
      void setInt(int parameterIndex, int parameterValue)
      Sets an input parameter to a Java int value.
      void setLong(int parameterIndex, long parameterValue)
      Sets an input parameter to a Java long value.
      void setNCharacterStream(int parameterIndex, java.io.Reader value)
      Sets the designated parameter to a Reader object.
      void setNCharacterStream(int parameterIndex, java.io.Reader value, long length)
      Sets the designated parameter to a Reader object.
      void setNClob(int parameterIndex, java.io.Reader reader)
      Sets the designated parameter to a Reader object.
      void setNClob(int parameterIndex, java.io.Reader reader, long length)
      Sets the designated parameter to a Reader object.
      void setNString(int parameterIndex, java.lang.String value)
      Sets the designated paramter to the given String object.
      void setNull(int parameterIndex, int sqlType)
      Sets an input parameter to SQL NULL.
      void setNull(int parameterIndex, int sqlType, java.lang.String typeName)
      Sets an input parameter to SQL NULL.
      void setObject(int parameterIndex, java.lang.Object parameterValue)
      Sets an input parameter to an Object value.
      void setObject(int parameterIndex, java.lang.Object parameterValue, int sqlType)
      Sets an input parameter to an Object value.
      void setObject(int parameterIndex, java.lang.Object parameterValue, int sqlType, int scale)
      Sets an input parameter to an Object value.
      void setObject(int parameterIndex, java.lang.Object x, java.lang.Object targetSqlType)
      Sets the value of the designated parameter with the given object.
      void setObject(int parameterIndex, java.lang.Object x, java.lang.Object targetSqlType, int scaleOrLength)
      Sets the value of the designated parameter with the given object.
      void setRef(int parameterIndex, java.sql.Ref parameterValue)
      Sets an input parameter to a Ref value.
      void setShort(int parameterIndex, short parameterValue)
      Sets an input parameter to a Java short value.
      void setString(int parameterIndex, java.lang.String parameterValue)
      Sets an input parameter to a String value.
      void setTime(int parameterIndex, java.sql.Time parameterValue)
      Sets an input parameter to a java.sql.Time value using the default calendar.
      void setTime(int parameterIndex, java.sql.Time parameterValue, java.util.Calendar calendar)
      Sets an input parameter to a java.sql.Time value using a calendar other than the default.
      void setTimestamp(int parameterIndex, java.sql.Timestamp parameterValue)
      Sets an input parameter to a java.sql.Timestamp value using the default calendar.
      void setTimestamp(int parameterIndex, java.sql.Timestamp parameterValue, java.util.Calendar calendar)
      Sets an input parameter to a java.sql.Timestamp value using a calendar other than the default.
      void setUnicodeStream(int parameterIndex, java.io.InputStream parameterValue, int length)
      Deprecated. 
      Use setCharacterStream(int, Reader, int) instead.
      void setURL(int parameterIndex, java.net.URL parameterValue)
      Sets an input parameter to a URL value.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.sql.PreparedStatement

        setNClob, setRowId, setSQLXML
      • Methods inherited from interface java.sql.Statement

        cancel, clearBatch, clearWarnings, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
      • Methods inherited from interface java.sql.Wrapper

        isWrapperFor, unwrap
    • Method Detail

      • addBatch

        public void addBatch()
                      throws java.sql.SQLException
        Adds the set of parameters to the current batch.
        Specified by:
        addBatch in interface java.sql.PreparedStatement
        Specified by:
        addBatch in class AS400JDBCPreparedStatement
        Throws:
        java.sql.SQLException - If the statement is not open or an input parameter has not been set.
      • addBatch

        public void addBatch(java.lang.String sql)
                      throws java.sql.SQLException
        Adds an SQL statement to the current batch of SQL statements.

        Do not use this form of addBatch() on a prepared statement.

        Specified by:
        addBatch in interface java.sql.Statement
        Specified by:
        addBatch in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement to be added to the current batch. This can be any SQL statement that does not return a result set.
        Throws:
        java.sql.SQLException - This exception is always thrown.
      • clearParameters

        public void clearParameters()
                             throws java.sql.SQLException
        Releases the resources used by the current input parameter values. In general, input parameter values remain in effect for repeated executions of the prepared statement. Setting an input parameter value to a new value automatically clears its previous value.
        Specified by:
        clearParameters in interface java.sql.PreparedStatement
        Specified by:
        clearParameters in class AS400JDBCPreparedStatement
        Throws:
        java.sql.SQLException - If the statement is not open.
      • close

        public void close()
                   throws java.sql.SQLException
        Releases the prepared statement's resources immediately instead of waiting for them to be automatically released. This closes the current result set.
        Specified by:
        close in interface java.sql.Statement
        Overrides:
        close in class AS400JDBCStatement
        Throws:
        java.sql.SQLException - If an error occurs.
      • execute

        public boolean execute()
                        throws java.sql.SQLException
        Runs an SQL statement that may return multiple result sets. This closes the current result set and clears warnings before executing the SQL statement again.

        Under some situations, a single SQL statement may return multiple result sets, an update count, or both. This might occur either when executing a stored procedure that returns multiple result sets or when dynamically executing an unknown SQL string.

        Use Statement.getMoreResults(), Statement.getResultSet(), and Statement.getUpdateCount() to navigate through multiple result sets, an update count, or both.

        Specified by:
        execute in interface java.sql.PreparedStatement
        Specified by:
        execute in class AS400JDBCPreparedStatement
        Returns:
        true if a result set was returned; false if an update count was returned or nothing was returned.
        Throws:
        java.sql.SQLException - If the statement is not open, the query timeout limit is exceeded, or an error occurs.
      • execute

        public boolean execute(java.lang.String sql)
                        throws java.sql.SQLException
        Runs an SQL statement that may return multiple result sets. This closes the current result set and clears warnings before executing a new SQL statement.

        Do not use this form of execute() on a prepared statement.

        Specified by:
        execute in interface java.sql.Statement
        Specified by:
        execute in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement.
        Returns:
        true if a result set was returned, false if an update count was returned or nothing was returned.
        Throws:
        java.sql.SQLException - This exception is always thrown.
      • execute

        public boolean execute(java.lang.String sql,
                      int autoGeneratedKeys)
                        throws java.sql.SQLException
        Runs an SQL statement that may return multiple result sets and makes any auto-generated keys available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        Do not use this form of execute() on a prepared statement.

        Specified by:
        execute in interface java.sql.Statement
        Specified by:
        execute in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement.
        autoGeneratedKeys - Indicates whether auto-generated keys should be made available for retrieval. Valid values are Statement.RETURN_GENERATED_KEYS and Statement.NO_GENERATED_KEYS.
        Returns:
        true if a result set was returned, false if an update count was returned or nothing was returned.
        Throws:
        java.sql.SQLException - This exception is always thrown.
        Since:
        Modification 5
      • execute

        public boolean execute(java.lang.String sql,
                      int[] columns)
                        throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Runs an SQL statement that may return multiple result sets and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        Under some situations, a single SQL statement may return multiple result sets, an update count, or both. This might occur when executing a stored procedure that returns multiple result sets or when dynamically executing an unknown SQL string.

        Use getMoreResults(), getResultSet(), and getUpdateCount() to navigate through multiple result sets, an update count, or both.

        This method is not supported when connecting to IBM i V5R4 or earlier systems.

        Specified by:
        execute in interface java.sql.Statement
        Overrides:
        execute in class AS400JDBCStatement
        Parameters:
        sql - The SQL statement.
        columns - Indicates that auto-generated keys for the indicated columns should be made available for retrieval.
        Returns:
        true if a result set was returned, false if an update count was returned or nothing was returned.
        Throws:
        java.sql.SQLException - - If connecting to IBM i V5R4 or earlier systems, if the statement is not open, the SQL statement contains a syntax error, the query timeout limit is exceeded, the value for columnIndexes is not a valid value, or an error occurs.
      • execute

        public boolean execute(java.lang.String sql,
                      java.lang.String[] columnNames)
                        throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Runs an SQL statement that may return multiple result sets and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        Under some situations, a single SQL statement may return multiple result sets, an update count, or both. This might occur when executing a stored procedure that returns multiple result sets or when dynamically executing an unknown SQL string.

        Use getMoreResults(), getResultSet(), and getUpdateCount() to navigate through multiple result sets, an update count, or both.

        This method is not supported when connecting to IBM i V5R4 or earlier systems.

        Specified by:
        execute in interface java.sql.Statement
        Overrides:
        execute in class AS400JDBCStatement
        Parameters:
        sql - The SQL statement.
        columnNames - Indicates that auto-generated keys for the indicated columns should be made available for retrieval.
        Returns:
        true if a result set was returned, false if an update count was returned or nothing was returned.
        Throws:
        java.sql.SQLException - - If connecting to IBM i V5R4 or earlier systems, if the statement is not open, the SQL statement contains a syntax error, the query timeout limit is exceeded, the value for columnNames is not a valid value, or an error occurs.
      • executeBatch

        public int[] executeBatch()
                           throws java.sql.SQLException
        Runs the batch of SQL statements. Batch updates can be used to submit a set of SQL statements together as a single unit. The SQL statements are run in the order in which they were added to the batch. The batch is cleared after the SQL statements are run. In addition, this closes the current result set and clears warnings before executing the new SQL statement.

        When batch updates are run, autocommit should usually be turned off. This allows the caller to decide whether or not to commit the transaction in the event that an error occurs and some of the SQL statements in a batch fail to run.

        Specified by:
        executeBatch in interface java.sql.Statement
        Specified by:
        executeBatch in class AS400JDBCPreparedStatement
        Returns:
        An array of row counts for the SQL statements that are run. The array contains one element for each statement in the batch of SQL statements. The array is ordered according to the order in which the SQL statements were added to the batch.
        Throws:
        java.sql.SQLException - If the statement is not open, an SQL statement contains a syntax error, the query timeout limit is exceeded, an SQL statement returns a result set, or an error occurs.
      • executeQuery

        public java.sql.ResultSet executeQuery()
                                        throws java.sql.SQLException
        Runs the SQL statement that returns a single result set. This closes the current result set and clears warnings before executing the SQL statement again.
        Specified by:
        executeQuery in interface java.sql.PreparedStatement
        Specified by:
        executeQuery in class AS400JDBCPreparedStatement
        Returns:
        The result set that contains the data produced by the query.
        Throws:
        java.sql.SQLException - If the statement is not open, no result set is returned by the database, the query timeout limit is exceeded, an input parameter has not been set, or an error occurs.
      • executeQuery

        public java.sql.ResultSet executeQuery(java.lang.String sql)
                                        throws java.sql.SQLException
        Runs an SQL statement that returns a single result set. This closes the current result set and clears warnings before executing a new SQL statement.

        Do not use this form of executeQuery() on a prepared statement.

        Specified by:
        executeQuery in interface java.sql.Statement
        Specified by:
        executeQuery in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement.
        Returns:
        The result set that contains the data produced by the query.
        Throws:
        java.sql.SQLException - This exception is always thrown.
      • executeUpdate

        public int executeUpdate()
                          throws java.sql.SQLException
        Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set. This closes the current result set and clears warnings before executing the SQL statement again.
        Specified by:
        executeUpdate in interface java.sql.PreparedStatement
        Specified by:
        executeUpdate in class AS400JDBCPreparedStatement
        Returns:
        Either the row count for INSERT, UPDATE, or DELETE, or 0 for SQL statements that return nothing.
        Throws:
        java.sql.SQLException - If the statement is not open, the query timeout limit is exceeded, the statement returns a result set, an input parameter has not been set, or an error occurs.
      • executeUpdate

        public int executeUpdate(java.lang.String sql)
                          throws java.sql.SQLException
        Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set. This closes the current result set and clears warnings before executing a new SQL statement.

        Do not use this form of executeUpdate() on a prepared statement.

        Specified by:
        executeUpdate in interface java.sql.Statement
        Specified by:
        executeUpdate in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement.
        Returns:
        Either the row count for INSERT, UPDATE, or DELETE, or 0 for SQL statements that return nothing.
        Throws:
        java.sql.SQLException - This exception is always thrown.
      • executeUpdate

        public int executeUpdate(java.lang.String sql,
                        int autoGeneratedKeys)
                          throws java.sql.SQLException
        Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        Do not use this form of executeUpdate() on a prepared statement.

        Specified by:
        executeUpdate in interface java.sql.Statement
        Specified by:
        executeUpdate in class AS400JDBCPreparedStatement
        Parameters:
        sql - The SQL statement.
        Returns:
        Either the row count for INSERT, UPDATE, or DELETE, or 0 for SQL statements that return nothing.
        Throws:
        java.sql.SQLException - This exception is always thrown.
        Since:
        Modification 5
      • executeUpdate

        public int executeUpdate(java.lang.String sql,
                        int[] columns)
                          throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        This method is not supported when connecting to IBM i V5R4 or earlier systems.

        Specified by:
        executeUpdate in interface java.sql.Statement
        Overrides:
        executeUpdate in class AS400JDBCStatement
        Parameters:
        sql - The SQL statement.
        columns - The indexes of columns for which auto-generated keys should be made available for retrieval.
        Returns:
        Either the row count for INSERT, UPDATE, or DELETE, or 0 for SQL statements that return nothing.
        Throws:
        java.sql.SQLException - If connection to IBM i V5R4 or earlier systems, the statement is not open, the SQL statement contains a syntax error, the query timeout limit is exceeded, the statement returns a result set, the value for autoGeneratedKeys is not a valid value or an error occurs.
      • executeUpdate

        public int executeUpdate(java.lang.String sql,
                        java.lang.String[] columnNames)
                          throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Runs an SQL INSERT, UPDATE, or DELETE statement, or any SQL statement that does not return a result set and makes any auto-generated keys for the columns indicated in the given array available for retrieval using Statement.getGeneratedKeys(). This closes the current result set and clears warnings before executing the new SQL statement.

        This method is not supported when connecting to IBM i V5R4 or earlier systems.

        Specified by:
        executeUpdate in interface java.sql.Statement
        Overrides:
        executeUpdate in class AS400JDBCStatement
        Parameters:
        sql - The SQL statement.
        columnNames - The column names for which auto-generated keys should be made available for retrieval.
        Returns:
        Either the row count for INSERT, UPDATE, or DELETE, or 0 for SQL statements that return nothing.
        Throws:
        java.sql.SQLException - If connection to IBM i V5R4 or earlier systems, the statement is not open, the SQL statement contains a syntax error, the query timeout limit is exceeded, the statement returns a result set, the value for autoGeneratedKeys is not a valid value or an error occurs.
      • getMetaData

        public java.sql.ResultSetMetaData getMetaData()
                                               throws java.sql.SQLException
        Returns the ResultSetMetaData object that describes the result set's columns. Null is returned if the statement does not return a result set. In the following example rsmd is null since the statement does not return a result set.
         PreparedStatement ps = connection
             .prepareStatement("INSERT INTO COLLECTION.TABLE VALUES(?)");
         ResultSetMetaData rsmd = ps.getMetaData();
         
        Specified by:
        getMetaData in interface java.sql.PreparedStatement
        Specified by:
        getMetaData in class AS400JDBCPreparedStatement
        Returns:
        The metadata object, or null if the statement does not return a result set.
        Throws:
        java.sql.SQLException - If the statement is not open.
      • getParameterMetaData

        public java.sql.ParameterMetaData getParameterMetaData()
                                                        throws java.sql.SQLException
        Returns the number, types, and properties of a PreparedStatement object's parameters.
        Specified by:
        getParameterMetaData in interface java.sql.PreparedStatement
        Specified by:
        getParameterMetaData in class AS400JDBCPreparedStatement
        Returns:
        The ParameterMetaData object that describes this prepared statement object.
        Throws:
        java.sql.SQLException - If the statement is not open.
        Since:
        Modification 5
      • setArray

        public void setArray(int parameterIndex,
                    java.sql.Array parameterValue)
                      throws java.sql.SQLException
        Sets an input parameter to an Array value. DB2 for IBM i only supports arrays in stored procedures.
        Specified by:
        setArray in interface java.sql.PreparedStatement
        Specified by:
        setArray in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - Always thrown because DB2 for IBM i does not support arrays.
      • setAsciiStream

        public void setAsciiStream(int parameterIndex,
                          java.io.InputStream parameterValue,
                          int length)
                            throws java.sql.SQLException
        Sets an input parameter to an ASCII stream value. The driver reads the data from the stream as needed until no more bytes are available. The driver converts this to an SQL VARCHAR value.
        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Specified by:
        setAsciiStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        length - The number of bytes in the stream.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the length is not valid, the input stream does not contain all ASCII characters, or an error occurs while reading the input stream.
      • setBigDecimal

        public void setBigDecimal(int parameterIndex,
                         java.math.BigDecimal parameterValue)
                           throws java.sql.SQLException
        Sets an input parameter to a BigDecimal value. The driver converts this to an SQL NUMERIC value.
        Specified by:
        setBigDecimal in interface java.sql.PreparedStatement
        Specified by:
        setBigDecimal in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setBinaryStream

        public void setBinaryStream(int parameterIndex,
                           java.io.InputStream parameterValue,
                           int length)
                             throws java.sql.SQLException
        Sets an input parameter to a binary stream value. The driver reads the data from the stream as needed until no more bytes are available. The driver converts this to an SQL VARBINARY value.
        If a parameter is set using setBinaryStream, then the parameter must be reset prior to the second execute of the PreparedStatement object.
        Specified by:
        setBinaryStream in interface java.sql.PreparedStatement
        Specified by:
        setBinaryStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        length - The number of bytes in the stream.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the length is not valid, or an error occurs while reading the input stream.
      • setBlob

        public void setBlob(int parameterIndex,
                   java.sql.Blob parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a Blob value. The driver converts this to an SQL BLOB value.
        If proxy support is in use, the Blob must be serializable.
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Specified by:
        setBlob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the parameter is not serializable (when proxy support is in use).
      • setBoolean

        public void setBoolean(int parameterIndex,
                      boolean parameterValue)
                        throws java.sql.SQLException
        Sets an input parameter to a Java boolean value. The driver converts this to an SQL SMALLINT value.
        Specified by:
        setBoolean in interface java.sql.PreparedStatement
        Specified by:
        setBoolean in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setByte

        public void setByte(int parameterIndex,
                   byte parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a Java byte value. The driver converts this to an SQL SMALLINT value.
        Specified by:
        setByte in interface java.sql.PreparedStatement
        Specified by:
        setByte in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setBytes

        public void setBytes(int parameterIndex,
                    byte[] parameterValue)
                      throws java.sql.SQLException
        Sets an input parameter to a Java byte array value. The driver converts this to an SQL VARBINARY value.
        Specified by:
        setBytes in interface java.sql.PreparedStatement
        Specified by:
        setBytes in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setCharacterStream

        public void setCharacterStream(int parameterIndex,
                              java.io.Reader parameterValue,
                              int length)
                                throws java.sql.SQLException
        Sets an input parameter to a character stream value. The driver reads the data from the character stream as needed until no more characters are available. The driver converts this to an SQL VARCHAR value.
        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Specified by:
        setCharacterStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        length - The number of characters to read from the reader.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the length is not valid, or an error occurs while reading the character stream
      • setClob

        public void setClob(int parameterIndex,
                   java.sql.Clob parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a Clob value. The driver converts this to an SQL CLOB value.
        If proxy support is in use, the Clob must be serializable.
        Specified by:
        setClob in interface java.sql.PreparedStatement
        Specified by:
        setClob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the parameter is not serializable (when proxy support is in use).
      • setDate

        public void setDate(int parameterIndex,
                   java.sql.Date parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a java.sql.Date value using the default calendar. The driver converts this to an SQL DATE value.
        Specified by:
        setDate in interface java.sql.PreparedStatement
        Specified by:
        setDate in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setDate

        public void setDate(int parameterIndex,
                   java.sql.Date parameterValue,
                   java.util.Calendar calendar)
                     throws java.sql.SQLException
        Sets an input parameter to a java.sql.Date value using a calendar other than the default. The driver converts this to an SQL DATE value.
        Specified by:
        setDate in interface java.sql.PreparedStatement
        Specified by:
        setDate in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        calendar - The calendar.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the calendar is null.
      • setDB2Default

        public void setDB2Default(int parameterIndex)
                           throws java.sql.SQLException
        Sets an input parameter to the default value
        Specified by:
        setDB2Default in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter.
      • setDBDefault

        public void setDBDefault(int parameterIndex)
                          throws java.sql.SQLException
        Sets an input parameter to the default value. This is a the same as setDB2Default.
        Specified by:
        setDBDefault in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter.
      • setDB2Unassigned

        public void setDB2Unassigned(int parameterIndex)
                              throws java.sql.SQLException
        Sets an input parameter to unassigned
        Specified by:
        setDB2Unassigned in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter.
      • setDBUnassigned

        public void setDBUnassigned(int parameterIndex)
                             throws java.sql.SQLException
        Sets an input parameter to unassigned. This is a the same as setDB2Unassigned.
        Specified by:
        setDBUnassigned in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter.
      • setDouble

        public void setDouble(int parameterIndex,
                     double parameterValue)
                       throws java.sql.SQLException
        Sets an input parameter to a Java double value. The driver converts this to an SQL DOUBLE value.
        Specified by:
        setDouble in interface java.sql.PreparedStatement
        Specified by:
        setDouble in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid or the parameter is not an input parameter.
      • setFloat

        public void setFloat(int parameterIndex,
                    float parameterValue)
                      throws java.sql.SQLException
        Sets an input parameter to a Java float value. The driver converts this to an SQL REAL value.
        Specified by:
        setFloat in interface java.sql.PreparedStatement
        Specified by:
        setFloat in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setInt

        public void setInt(int parameterIndex,
                  int parameterValue)
                    throws java.sql.SQLException
        Sets an input parameter to a Java int value. The driver converts this to an SQL INTEGER value.
        Specified by:
        setInt in interface java.sql.PreparedStatement
        Specified by:
        setInt in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid or the parameter is not an input parameter.
      • setLong

        public void setLong(int parameterIndex,
                   long parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a Java long value. If the connected system supports SQL BIGINT data, the driver converts this to an SQL BIGINT value. Otherwise, the driver converts this to an SQL INTEGER value. SQL BIGINT data is supported on V4R5 and later.
        Specified by:
        setLong in interface java.sql.PreparedStatement
        Specified by:
        setLong in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setNull

        public void setNull(int parameterIndex,
                   int sqlType)
                     throws java.sql.SQLException
        Sets an input parameter to SQL NULL.
        Specified by:
        setNull in interface java.sql.PreparedStatement
        Specified by:
        setNull in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        sqlType - The SQL type code defined in java.sql.Types.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the SQL type is not valid.
      • setNull

        public void setNull(int parameterIndex,
                   int sqlType,
                   java.lang.String typeName)
                     throws java.sql.SQLException
        Sets an input parameter to SQL NULL.
        Specified by:
        setNull in interface java.sql.PreparedStatement
        Specified by:
        setNull in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        sqlType - The SQL type code defined in java.sql.Types.
        typeName - The fully-qualified name of an SQL structured type. This value will be ignored.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the SQL type is not valid.
      • setObject

        public void setObject(int parameterIndex,
                     java.lang.Object parameterValue)
                       throws java.sql.SQLException
        Sets an input parameter to an Object value. The driver converts this to a value of an SQL type, depending on the type of the specified value. The JDBC specification defines a standard mapping from Java types to SQL types. In the cases where a SQL type is not supported by DB2 for IBM i, the next closest matching type is used.
        If proxy support is in use, the Object must be serializable.
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Specified by:
        setObject in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the type of value is not supported, or the parameter is not serializable (when proxy support is in use).
      • setObject

        public void setObject(int parameterIndex,
                     java.lang.Object parameterValue,
                     int sqlType)
                       throws java.sql.SQLException
        Sets an input parameter to an Object value. The driver converts this to a value with the specified SQL type.
        If proxy support is in use, the Object must be serializable.
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Specified by:
        setObject in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        sqlType - The SQL type code defined in java.sql.Types.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the SQL type is not valid, or the parameter is not serializable (when proxy support is in use).
      • setObject

        public void setObject(int parameterIndex,
                     java.lang.Object parameterValue,
                     int sqlType,
                     int scale)
                       throws java.sql.SQLException
        Sets an input parameter to an Object value. The driver converts this to a value with the specified SQL type.
        If proxy support is in use, the Object must be serializable.
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Specified by:
        setObject in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        sqlType - The SQL type code defined in java.sql.Types.
        scale - The number of digits after the decimal if sqlType is DECIMAL or NUMERIC.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the SQL type is not valid, the scale is not valid, or the parameter is not serializable (when proxy support is in use).
      • setRef

        public void setRef(int parameterIndex,
                  java.sql.Ref parameterValue)
                    throws java.sql.SQLException
        Sets an input parameter to a Ref value. DB2 for IBM i does not support structured types.
        Specified by:
        setRef in interface java.sql.PreparedStatement
        Specified by:
        setRef in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - Always thrown because DB2 for IBM i does not support structured types.
      • setShort

        public void setShort(int parameterIndex,
                    short parameterValue)
                      throws java.sql.SQLException
        Sets an input parameter to a Java short value. The driver converts this to an SQL SMALLINT value.
        Specified by:
        setShort in interface java.sql.PreparedStatement
        Specified by:
        setShort in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid or the parameter is not an input parameter.
      • setString

        public void setString(int parameterIndex,
                     java.lang.String parameterValue)
                       throws java.sql.SQLException
        Sets an input parameter to a String value. The driver converts this to an SQL VARCHAR value.
        Specified by:
        setString in interface java.sql.PreparedStatement
        Specified by:
        setString in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setTime

        public void setTime(int parameterIndex,
                   java.sql.Time parameterValue)
                     throws java.sql.SQLException
        Sets an input parameter to a java.sql.Time value using the default calendar. The driver converts this to an SQL TIME value.
        Specified by:
        setTime in interface java.sql.PreparedStatement
        Specified by:
        setTime in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setTime

        public void setTime(int parameterIndex,
                   java.sql.Time parameterValue,
                   java.util.Calendar calendar)
                     throws java.sql.SQLException
        Sets an input parameter to a java.sql.Time value using a calendar other than the default. The driver converts this to an SQL TIME value.
        Specified by:
        setTime in interface java.sql.PreparedStatement
        Specified by:
        setTime in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        calendar - The calendar.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the calendar is null.
      • setTimestamp

        public void setTimestamp(int parameterIndex,
                        java.sql.Timestamp parameterValue)
                          throws java.sql.SQLException
        Sets an input parameter to a java.sql.Timestamp value using the default calendar. The driver converts this to an SQL TIMESTAMP value.
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Specified by:
        setTimestamp in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
      • setTimestamp

        public void setTimestamp(int parameterIndex,
                        java.sql.Timestamp parameterValue,
                        java.util.Calendar calendar)
                          throws java.sql.SQLException
        Sets an input parameter to a java.sql.Timestamp value using a calendar other than the default. The driver converts this to an SQL TIMESTAMP value.
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Specified by:
        setTimestamp in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        calendar - The calendar.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, or the calendar is null.
      • setUnicodeStream

        public void setUnicodeStream(int parameterIndex,
                            java.io.InputStream parameterValue,
                            int length)
                              throws java.sql.SQLException
        Deprecated. Use setCharacterStream(int, Reader, int) instead.
        Sets an input parameter to a Unicode stream value. The driver reads the data from the stream as needed until no more bytes are available. The driver converts this to an SQL VARCHAR value.

        Note that the number of bytes in a Unicode stream can be computed as 2 multiplied by the number of characters plus 2 bytes for the byte-order mark. If an uneven number of bytes is specified, then Java will convert this to an empty String.

        Specified by:
        setUnicodeStream in interface java.sql.PreparedStatement
        Specified by:
        setUnicodeStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        length - The number of bytes in the stream.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, the parameter is not an input parameter, the length is not valid, the input stream does not contain all Unicode characters, or an error occurs while reading the input stream
        See Also:
        setCharacterStream(int, java.io.Reader, int)
      • setURL

        public void setURL(int parameterIndex,
                  java.net.URL parameterValue)
                    throws java.sql.SQLException
        Sets an input parameter to a URL value. The driver converts this to an SQL DATALINK value.
        Specified by:
        setURL in interface java.sql.PreparedStatement
        Specified by:
        setURL in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        parameterValue - The parameter value or null to set the value to SQL NULL.
        Throws:
        java.sql.SQLException - If the statement is not open, the index is not valid, or the parameter is not an input parameter.
        Since:
        Modification 5
      • setNString

        public void setNString(int parameterIndex,
                      java.lang.String value)
                        throws java.sql.SQLException
        Sets the designated paramter to the given String object. The driver converts this to a SQL NCHAR or NVARCHAR or LONGNVARCHAR value (depending on the argument's size relative to the driver's limits on NVARCHAR values) when it sends it to the database.
        Specified by:
        setNString in interface java.sql.PreparedStatement
        Specified by:
        setNString in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        value - the parameter value
        Throws:
        java.sql.SQLException - If a database error occurs. if the driver does not support national character sets; if the driver can detect that a data conversion error could occur ; or if a database access error occurs
      • setNCharacterStream

        public void setNCharacterStream(int parameterIndex,
                               java.io.Reader value,
                               long length)
                                 throws java.sql.SQLException
        Sets the designated parameter to a Reader object. The Reader reads the data till end-of-file is reached. The driver does the necessary conversion from Java character format to the national character set in the database.
        Specified by:
        setNCharacterStream in interface java.sql.PreparedStatement
        Specified by:
        setNCharacterStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        value - the parameter value
        length - the number of characters in the parameter data.
        Throws:
        java.sql.SQLException - If a database error occurs. if the driver does not support national character sets; if the driver can detect that a data conversion error could occur ; or if a database access error occurs
      • setClob

        public void setClob(int parameterIndex,
                   java.io.Reader reader,
                   long length)
                     throws java.sql.SQLException
        Sets the designated parameter to a Reader object. The reader must contain the number of characters specified by length otherwise a SQLException will be generated when the PreparedStatement is executed.
        Specified by:
        setClob in interface java.sql.PreparedStatement
        Specified by:
        setClob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement, or if the length specified is less than zero.
      • setBlob

        public void setBlob(int parameterIndex,
                   java.io.InputStream inputStream,
                   long length)
                     throws java.sql.SQLException
        Sets the designated parameter to an InputStream object. The inputStream must contain the number of characters specified by length otherwise a SQLException will be generated when the PreparedStatement is executed.
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Specified by:
        setBlob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        inputStream - An object that contains the data to set the parameter value to.
        length - the number of bytes in the parameter data.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement, if the length specified is less than zero or if the number of bytes in the inputstream does not match the specfied length.
      • setNClob

        public void setNClob(int parameterIndex,
                    java.io.Reader reader,
                    long length)
                      throws java.sql.SQLException
        Sets the designated parameter to a Reader object. The reader must contain the number of characters specified by length otherwise a SQLException will be generated when the PreparedStatement is executed.
        Specified by:
        setNClob in interface java.sql.PreparedStatement
        Specified by:
        setNClob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement; if the length specified is less than zero; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; or if a database access error occurs
      • setAsciiStream

        public void setAsciiStream(int parameterIndex,
                          java.io.InputStream x,
                          long length)
                            throws java.sql.SQLException
        Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large ASCII value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.InputStream. Data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from ASCII to the database char format.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Specified by:
        setAsciiStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        x - the Java input stream that contains the ASCII parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - if a database access error occurs or this method is called on a closed PreparedStatement
      • setBinaryStream

        public void setBinaryStream(int parameterIndex,
                           java.io.InputStream x,
                           long length)
                             throws java.sql.SQLException
        Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large binary value is input to a LONGVARBINARY parameter, it may be more practical to send it via a java.io.InputStream object. The data will be read from the stream as needed until end-of-file is reached.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Specified by:
        setBinaryStream in interface java.sql.PreparedStatement
        Specified by:
        setBinaryStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        x - the java input stream which contains the binary parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - if a database access error occurs or this method is called on a closed PreparedStatement
      • setCharacterStream

        public void setCharacterStream(int parameterIndex,
                              java.io.Reader reader,
                              long length)
                                throws java.sql.SQLException
        Sets the designated parameter to the given Reader object, which is the given number of characters long. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Specified by:
        setCharacterStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - the java.io.Reader object that contains the Unicode data
        length - the number of characters in the stream
        Throws:
        java.sql.SQLException - if a database access error occurs or this method is called on a closed PreparedStatement
      • getDB2ParameterName

        public java.lang.String getDB2ParameterName(int parm)
                                             throws java.sql.SQLException
        Return the name of the parameter for a stored procedure call.
        Specified by:
        getDB2ParameterName in class AS400JDBCPreparedStatement
        Parameters:
        parm - the parameter number to get the name for
        Returns:
        the parameter name.
        Throws:
        java.sql.SQLException - If a database error occurs.
      • setAsciiStream

        public void setAsciiStream(int parameterIndex,
                          java.io.InputStream x)
                            throws java.sql.SQLException
        Sets the designated parameter to the given input stream. When a very large ASCII value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.InputStream. Data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from ASCII to the database char format.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Specified by:
        setAsciiStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        x - the Java input stream that contains the ASCII parameter value
        Throws:
        java.sql.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement
      • setBinaryStream

        public void setBinaryStream(int parameterIndex,
                           java.io.InputStream x)
                             throws java.sql.SQLException
        Sets the designated parameter to the given input stream. When a very large binary value is input to a LONGVARBINARY parameter, it may be more practical to send it via a java.io.InputStream object. The data will be read from the stream as needed until end-of-file is reached.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Specified by:
        setBinaryStream in interface java.sql.PreparedStatement
        Specified by:
        setBinaryStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        x - the java input stream which contains the binary parameter value
        Throws:
        java.sql.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement
      • setBlob

        public void setBlob(int parameterIndex,
                   java.io.InputStream inputStream)
                     throws java.sql.SQLException
        Sets the designated parameter to a InputStream object. This method differs from the setBinaryStream (int, InputStream) method because it informs the driver that the parameter value should be sent to the server as a BLOB. When the setBinaryStream method is used, the driver may have to do extra work to determine whether the parameter data should be sent to the server as a LONGVARBINARY or a BLOB
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Specified by:
        setBlob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        inputStream - An object that contains the data to set the parameter value to.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs; this method is called on a closed PreparedStatement or if parameterIndex does not correspond to a parameter marker in the SQL statement,
      • setCharacterStream

        public void setCharacterStream(int parameterIndex,
                              java.io.Reader reader)
                                throws java.sql.SQLException
        Sets the designated parameter to the given Reader object. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of setCharacterStream which takes a length parameter.

        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Specified by:
        setCharacterStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - the java.io.Reader object that contains the Unicode data
        Throws:
        java.sql.SQLException - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement
      • setClob

        public void setClob(int parameterIndex,
                   java.io.Reader reader)
                     throws java.sql.SQLException
        Sets the designated parameter to a Reader object. This method differs from the setCharacterStream (int, Reader) method because it informs the driver that the parameter value should be sent to the server as a CLOB. When the setCharacterStream method is used, the driver may have to do extra work to determine whether the parameter data should be sent to the server as a LONGVARCHAR or a CLOB

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of setClob which takes a length parameter.

        Specified by:
        setClob in interface java.sql.PreparedStatement
        Specified by:
        setClob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - An object that contains the data to set the parameter value to.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs; this method is called on a closed PreparedStatementor if parameterIndex does not correspond to a parameter marker in the SQL statement
      • setNCharacterStream

        public void setNCharacterStream(int parameterIndex,
                               java.io.Reader value)
                                 throws java.sql.SQLException
        Sets the designated parameter to a Reader object. The Reader reads the data till end-of-file is reached. The driver does the necessary conversion from Java character format to the national character set in the database.

        Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of setNCharacterStream which takes a length parameter.

        Specified by:
        setNCharacterStream in interface java.sql.PreparedStatement
        Specified by:
        setNCharacterStream in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        value - the parameter value
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; if a database access error occurs; or this method is called on a closed PreparedStatement
      • setNClob

        public void setNClob(int parameterIndex,
                    java.io.Reader reader)
                      throws java.sql.SQLException
        Sets the designated parameter to a Reader object. This method differs from the setCharacterStream (int, Reader) method because it informs the driver that the parameter value should be sent to the server as a NCLOB. When the setCharacterStream method is used, the driver may have to do extra work to determine whether the parameter data should be sent to the server as a LONGNVARCHAR or a NCLOB

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of setNClob which takes a length parameter.

        Specified by:
        setNClob in interface java.sql.PreparedStatement
        Specified by:
        setNClob in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - The parameter index (1-based).
        reader - An object that contains the data to set the parameter value to.
        Throws:
        java.sql.SQLException - If a database error occurs. if parameterIndex does not correspond to a parameter marker in the SQL statement; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; if a database access error occurs or this method is called on a closed PreparedStatement
      • setObject

        public void setObject(int parameterIndex,
                     java.lang.Object x,
                     java.lang.Object targetSqlType,
                     int scaleOrLength)
                       throws java.sql.SQLException
        Sets the value of the designated parameter with the given object. If the second argument is an InputStream then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a Reader then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a SQLException when the prepared statement is executed.

        The given Java object will be converted to the given targetSqlType before being sent to the database. If the object has a custom mapping (is of a class implementing the interface SQLData), the JDBC driver should call the method SQLData.writeSQL to write it to the SQL data stream. If, on the other hand, the object is of a class implementing Ref, Blob, Clob, NClob, Struct, java.net.URL, or Array, the driver should pass it to the database as a value of the corresponding SQL type.

        Note that this method may be used to pass database-specific abstract data types.

        Specified by:
        setObject in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - - the first parameter is 1, the second is 2, ...
        x - - the object containing the input parameter value
        targetSqlType - - the SQL type to be sent to the database. The scale argument may further qualify this type.
        scaleOrLength - - for java.sql.JDBCType.DECIMAL or java.sql.JDBCType.NUMERIC types, this is the number of digits after the decimal point. For Java Object types InputStream and Reader, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
        Throws:
        java.sql.SQLException - - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement or if the Java Object specified by x is an InputStream or Reader object and the value of the scale parameter is less than zero
      • setObject

        public void setObject(int parameterIndex,
                     java.lang.Object x,
                     java.lang.Object targetSqlType)
                       throws java.sql.SQLException
        Sets the value of the designated parameter with the given object. This method is similar to setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength), except that it assumes a scale of zero.
        Specified by:
        setObject in class AS400JDBCPreparedStatement
        Parameters:
        parameterIndex - - the first parameter is 1, the second is 2, ...
        x - - the object containing the input parameter value
        targetSqlType - - the SQL type to be sent to the database parameterIndex
        Throws:
        java.sql.SQLException - - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement
      • executeLargeUpdate

        public long executeLargeUpdate()
                                throws java.sql.SQLException
        Executes the SQL statement in this PreparedStatement object, which must be an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.

        This method should be used when the returned row count may exceed Integer.MAX_VALUE.

        Specified by:
        executeLargeUpdate in class AS400JDBCPreparedStatement
        Returns:
        either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - - if a database access error occurs; this method is called on a closed PreparedStatement or the SQL statement returns a ResultSet object
      • executeLargeUpdate

        public long executeLargeUpdate(java.lang.String sql)
                                throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.

        This method should be used when the returned row count may exceed Integer.MAX_VALUE.

        Note:This method cannot be called on a PreparedStatement or CallableStatement.

        Overrides:
        executeLargeUpdate in class AS400JDBCStatement
        Parameters:
        sql - an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.
        Returns:
        either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - - if a database access error occurs, this method is called on a closed Statement, the given SQL statement produces a ResultSet object, the method is called on a PreparedStatement or CallableStatement.
      • executeLargeUpdate

        public long executeLargeUpdate(java.lang.String sql,
                              int autoGeneratedKeys)
                                throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Executes the given SQL statement and signals the driver with the given flag about whether the auto-generated keys produced by this Statement object should be made available for retrieval. The driver will ignore the flag if the SQL statement is not an INSERT statement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).

        This method should be used when the returned row count may exceed Integer.MAX_VALUE.

        Overrides:
        executeLargeUpdate in class AS400JDBCStatement
        Parameters:
        sql - - an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.
        autoGeneratedKeys - - a flag indicating whether auto-generated keys should be made available for retrieval; one of the following constants: Statement.RETURN_GENERATED_KEYS Statement.NO_GENERATED_KEYS
        Returns:
        either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - - if a database access error occurs, this method is called on a closed Statement, the given SQL statement returns a ResultSet object, the given constant is not one of those allowed, the method is called on a PreparedStatement or CallableStatement
      • executeLargeUpdate

        public long executeLargeUpdate(java.lang.String sql,
                              int[] columnIndexes)
                                throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the SQL statement is not an INSERT statement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).

        This method should be used when the returned row count may exceed Integer.MAX_VALUE.

        Note:This method cannot be called on a PreparedStatement or CallableStatement.

        Overrides:
        executeLargeUpdate in class AS400JDBCStatement
        Parameters:
        sql - - an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.
        columnIndexes - - an array of column indexes indicating the columns that should be returned from the inserted row
        Returns:
        either (1) the row count for SQL Data Manipulation Language (DML) statements or (2) 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - - if a database access error occurs, this method is called on a closed Statement, the SQL statement returns a ResultSet object,the second argument supplied to this method is not an int array whose elements are valid column indexes, the method is called on a PreparedStatement or CallableStatement
      • executeLargeUpdate

        public long executeLargeUpdate(java.lang.String sql,
                              java.lang.String[] columnNames)
                                throws java.sql.SQLException
        Description copied from class: AS400JDBCStatement
        Executes the given SQL statement and signals the driver that the auto-generated keys indicated in the given array should be made available for retrieval. This array contains the names of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the SQL statement is not an INSERT statement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).

        This method should be used when the returned row count may exceed Integer.MAX_VALUE.

        Note:This method cannot be called on a PreparedStatement or CallableStatement.

        Overrides:
        executeLargeUpdate in class AS400JDBCStatement
        Parameters:
        sql - - an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE; or an SQL statement that returns nothing, such as a DDL statement.
        columnNames - - an array of the names of the columns that should be returned from the inserted row
        Returns:
        either the row count for INSERT, UPDATE, or DELETE statements, or 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - if a database access error occurs, this method is called on a closed Statement, the SQL statement returns a ResultSet object, the second argument supplied to this method is not a String array whose elements are valid column names, the method is called on a PreparedStatement or CallableStatement