## org.firebirdsql.jdbc
Class AbstractCallableStatement

    java.lang.Object
      org.firebirdsql.jdbc.AbstractStatement
          org.firebirdsql.jdbc.AbstractPreparedStatement
              org.firebirdsql.jdbc.AbstractCallableStatement

All Implemented Interfaces:
  CallableStatement, PreparedStatement, Statement, Wrapper, FirebirdCallableStatement, FirebirdPreparedStatement, FirebirdStatement, Synchronizable

Direct Known Subclasses:
  FBCallableStatement

    public abstract class AbstractCallableStatement

extends AbstractPreparedStatement
implements CallableStatement, FirebirdCallableStatement

The interface used to execute SQL stored procedures. JDBC provides a stored procedure SQL escape syntax that allows stored procedures to be called in a standard way for all RDBMSs. This escape syntax has one form that includes a result parameter and one that does not. If used, the result parameter must be registered as an OUT parameter. The other parameters can be used for input, output or both. Parameters are referred to sequentially, by number, with the first parameter being 1.

>        {?= call <procedure-name>[<arg1>,<arg2>, ...]}
>        {call <procedure-name>[<arg1>,<arg2>, ...]}

IN parameter values are set using the set methods inherited from `PreparedStatement`. The type of all OUT parameters must be registered prior to executing the stored procedure; their values are retrieved after execution via the `get` methods provided here.

A `CallableStatement` can return one `ResultSet` or multiple `ResultSet` objects. Multiple `ResultSet` objects are handled using operations inherited from `Statement`.

For maximum portability, a call's `ResultSet` objects and update counts should be processed prior to getting the values of output parameters.

Methods that are new in the JDBC 2.0 API are marked "Since 1.2." Note: Escape syntax currently is not supported. Please use native Firebird procedure call syntax:

     EXECUTE PROCEDURE <proc_name>(param1, ...);

Author:
  David Jencks, Roman Rokytskyy, Steven Jardine
See Also:
  `Connection.prepareCall(java.lang.String)`, `ResultSet`

Field Summary
`protected FBProcedureCall` `procedureCall`
`protected boolean` `selectableProcedure`

Fields inherited from class org.firebirdsql.jdbc.AbstractPreparedStatement
`isParamSet`

Fields inherited from class org.firebirdsql.jdbc.AbstractStatement
`completed, fetchSize, firstWarning, fixedStmt, gdsHelper, hasMoreResults, isResultSet, maxRows, statementListener`

Fields inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement
`TYPE_COMMIT, TYPE_DDL, TYPE_DELETE, TYPE_EXEC_PROCEDURE, TYPE_GET_SEGMENT, TYPE_INSERT, TYPE_PUT_SEGMENT, TYPE_ROLLBACK, TYPE_SELECT, TYPE_SELECT_FOR_UPDATE, TYPE_SET_GENERATOR, TYPE_START_TRANS, TYPE_UPDATE`

Fields inherited from interface org.firebirdsql.jdbc.FirebirdStatement
`CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, KEEP_CURRENT_RESULT`

Fields inherited from interface java.sql.Statement
`EXECUTE_FAILED, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

Constructor Summary
`protected` `AbstractCallableStatement(GDSHelper c, String sql, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener)`

Method Summary
`void` `addBatch()` Adds a set of parameters to this `PreparedStatement` object's batch of commands.
`protected void` `assertHasData(ResultSet rs)` Asserts if the current statement has data to return.
`void` `clearBatch()` Makes the set of commands in the current batch empty.
`boolean` `execute()` Executes an execute stored procedure.
`int[]` `executeBatch()` Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts.
`ResultSet` `executeQuery()` Execute query.
`int` `executeUpdate()` Execute query.
`Array` `getArray(int parameterIndex)` Gets the value of a JDBC `ARRAY` parameter as an `Array` object in the Java programming language.
`BigDecimal` `getBigDecimal(int parameterIndex)` Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with as many digits to the right of the decimal point as the value contains.
`BigDecimal` `getBigDecimal(int parameterIndex, int scale)` Deprecated.
`Blob` `getBlob(int parameterIndex)` Gets the value of a JDBC `BLOB` parameter as a `Blob` object in the Java programming language.
`boolean` `getBoolean(int parameterIndex)` Gets the value of a JDBC `BIT` parameter as a `boolean` in the Java programming language.
`byte` `getByte(int parameterIndex)` Gets the value of a JDBC `TINYINT` parameter as a `byte` in the Java programming language.
`byte[]` `getBytes(int parameterIndex)` Gets the value of a JDBC `BINARY` or `VARBINARY` parameter as an array of `byte` values in the Java programming language.
`Clob` `getClob(int parameterIndex)` Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.
`ResultSet` `getCurrentResultSet()` Get current result set.
`Date` `getDate(int parameterIndex)` Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object.
`Date` `getDate(int parameterIndex, Calendar cal)` Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object, using the given `Calendar` object to construct the date.
`double` `getDouble(int parameterIndex)` Gets the value of a JDBC `DOUBLE` parameter as a `double` in the Java programming language.
`float` `getFloat(int parameterIndex)` Gets the value of a JDBC `FLOAT` parameter as a `float` in the Java programming language.
`int` `getInt(int parameterIndex)` Gets the value of a JDBC `INTEGER` parameter as an `int` in the Java programming language.
`long` `getLong(int parameterIndex)` Gets the value of a JDBC `BIGINT` parameter as a `long` in the Java programming language.
`ResultSetMetaData` `getMetaData()` Since we deferred the statement preparation until all OUT params are registered, we ensure that the statement is prepared before the meta data for the callable statement is obtained.
`Object` `getObject(int parameterIndex)` Gets the value of a parameter as an `Object` in the Java programming language.
`Object` `getObject(int parameterIndex, Map map)` Returns an object representing the value of OUT parameter `i` and uses `map` for the custom mapping of the parameter value.
`Ref` `getRef(int parameterIndex)` Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.
`ResultSet` `getResultSet()` Returns the current result as a `ResultSet` object.
`short` `getShort(int parameterIndex)` Gets the value of a JDBC `SMALLINT` parameter as a `short` in the Java programming language.
`String` `getString(int parameterIndex)` Retrieves the value of a JDBC `CHAR`, `VARCHAR`, or `LONGVARCHAR` parameter as a `String` in the Java programming language.
`Time` `getTime(int parameterIndex)` Get the value of a JDBC `TIME` parameter as a `java.sql.Time` object.
`Time` `getTime(int parameterIndex, Calendar cal)` Gets the value of a JDBC `TIME` parameter as a `java.sql.Time` object, using the given `Calendar` object to construct the time.
`Timestamp` `getTimestamp(int parameterIndex)` Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object.
`Timestamp` `getTimestamp(int parameterIndex, Calendar cal)` Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object, using the given `Calendar` object to construct the `Timestamp` object.
`protected boolean` `internalExecute(boolean sendOutParams)` Execute statement internally.
`protected void` `prepareFixedStatement(String sql, boolean describeBind)` We allow multiple calls to this method without re-preparing the statement.
`void` `registerOutParameter(int parameterIndex, int sqlType)` Registers the OUT parameter in ordinal position `parameterIndex` to the JDBC type `sqlType`.
`void` `registerOutParameter(int parameterIndex, int sqlType, int scale)` Registers the parameter in ordinal position `parameterIndex` to be of JDBC type `sqlType`.
`void` `setArray(int i, Array x)` Sets the designated parameter to the given `Array` object.
`void` `setAsciiStream(int parameterIndex, InputStream x, int length)` Sets the designated parameter to the given input stream, which will have the specified number of bytes.
`void` `setBigDecimal(int parameterIndex, BigDecimal x)` Sets the designated parameter to the given BigDecimal
`void` `setBinaryStream(int parameterIndex, InputStream inputStream, int length)` Sets the designated parameter to the given input stream, which will have the specified number of bytes.
`void` `setBlob(int parameterIndex, Blob blob)` Sets the designated parameter to the given `Blob` object.
`void` `setBoolean(int parameterIndex, boolean x)` Sets the designated parameter to the given boolean value.
`void` `setByte(int parameterIndex, byte x)` Sets the designated parameter to the given byte value.
`void` `setBytes(int parameterIndex, byte[] x)` Set the designated parameter to the given byte array.
`void` `setCharacterStream(int parameterIndex, Reader reader, int length)` Sets the designated parameter to the given `Reader` object, which is the given number of characters long.
`void` `setClob(int parameterIndex, Clob x)` Sets the designated parameter to the given `Clob` object.
`void` `setDate(int parameterIndex, Date x)` Sets the designated parameter to the given date value.
`void` `setDate(int parameterIndex, Date x, Calendar cal)` Sets the designated parameter to the given `java.sql.Date` value, using the given `Calendar` object.
`void` `setDouble(int parameterIndex, double x)` Sets the designated parameter to the given double value.
`void` `setFloat(int parameterIndex, float x)` Sets the designated parameter to the given floate value.
`void` `setInt(int parameterIndex, int x)` Sets the designated parameter to the given int value.
`void` `setLong(int parameterIndex, long x)` Sets the designated parameter to the given long value.
`void` `setNull(int parameterIndex, int sqlType)` Sets the designated parameter to SQL `NULL`.
`void` `setNull(int parameterIndex, int sqlType, String typeName)` Sets the designated parameter to SQL `NULL`.
`void` `setObject(int parameterIndex, Object x)` Sets the value of the designated parameter with the given object.
`void` `setObject(int parameterIndex, Object x, int targetSqlType)` Sets the value of the designated parameter with the given object.
`void` `setObject(int parameterIndex, Object x, int targetSqlType, int scale)` Sets the value of the designated parameter with the given object.
`void` `setRef(int parameterIndex, Ref x)` Sets the designated parameter to the given `REF(<structured-type>)` value.
`protected void` `setRequiredTypes()` Set required types for output parameters.
`void` `setSelectableProcedure(boolean selectableProcedure)` Mark this callable statement as a call of the selectable procedure.
`void` `setShort(int parameterIndex, short x)` Sets the designated parameter to the given short value.
`void` `setString(int parameterIndex, String x)` Sets the designated parameter to the given String value.
`void` `setTime(int parameterIndex, Time x)` Sets the designated parameter to the given Time value.
`void` `setTime(int parameterIndex, Time x, Calendar cal)` Sets the designated parameter to the given `java.sql.Time` value, using the given `Calendar` object.
`void` `setTimestamp(int parameterIndex, Timestamp x)` Sets the designated parameter to the given Timestamp value.
`void` `setTimestamp(int parameterIndex, Timestamp x, Calendar cal)` Sets the designated parameter to the given `java.sql.Timestamp` value, using the given `Calendar` object.
`void` `setUnicodeStream(int parameterIndex, InputStream x, int length)` Sets the designated parameter to the given input stream, which will have the specified number of bytes.
`boolean` `wasNull()` Indicates whether or not the last OUT parameter read had the value of SQL `NULL`.

Methods inherited from class org.firebirdsql.jdbc.AbstractPreparedStatement
`clearParameters, completeStatement, getExecutionPlan, getField, getStatementType, getXsqlvar, notifyStatementCompleted, setStringForced`

Methods inherited from class org.firebirdsql.jdbc.AbstractStatement

`addBatch, addWarning, cancel, clearWarnings, close, execute, executeQuery, executeUpdate, finalize, forgetResultSet, getConnection, getDeletedRowsCount, getFetchDirection, getFetchSize, getInsertedRowsCount, getLastExecutionPlan, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSynchronizationObject, getUpdateCount, getUpdatedRowsCount, getWarnings, hasOpenResultSet, internalExecute, isClosed, isExecuteProcedureStatement, isValid, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout, toArray`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement
`getExecutionPlan, getStatementType`

Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement
`getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getUpdatedRowsCount, hasOpenResultSet, isValid`

Methods inherited from interface java.sql.CallableStatement

`getArray, getBigDecimal, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getDate, getDate, getDouble, getFloat, getInt, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getRef, getRowId, getRowId, getShort, getSQLXML, getSQLXML, getString, getTime, getTime, getTimestamp, getTimestamp, getURL, getURL, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setURL`

Methods inherited from interface java.sql.PreparedStatement
`clearParameters, getParameterMetaData, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML, setURL`

Methods inherited from interface java.sql.Statement

`addBatch, cancel, clearWarnings, close, execute, execute, execute, execute, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

Methods inherited from interface java.sql.Wrapper
`isWrapperFor, unwrap`

Field Detail

### selectableProcedure

    protected boolean selectableProcedure

### procedureCall

    protected FBProcedureCall procedureCall

Constructor Detail

### AbstractCallableStatement

    protected AbstractCallableStatement(GDSHelper c,
                                        String sql,
                                        int rsType,
                                        int rsConcurrency,
                                        int rsHoldability,
                                        FBObjectListener.StatementListener statementListener,
                                        FBObjectListener.BlobListener blobListener)
                                 throws SQLException

Throws:
  `SQLException`

Method Detail

### addBatch

    public void addBatch()
                  throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Adds a set of parameters to this `PreparedStatement` object's batch of commands.

  Specified by:
    `addBatch` in interface `PreparedStatement`
  Overrides:
    `addBatch` in class `AbstractPreparedStatement`
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Statement.addBatch(java.lang.String)`, What Is in the JDBC 2.0 API

### clearBatch

    public void clearBatch()
                    throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Makes the set of commands in the current batch empty. This method is optional.

  Specified by:
    `clearBatch` in interface `Statement`
  Overrides:
    `clearBatch` in class `AbstractPreparedStatement`
  Throws:
    `SQLException` - if a database access error occurs or the driver does not support batch statements
  See Also:
    What Is in the JDBC 2.0 API

### executeBatch

    public int[] executeBatch()
                       throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts. The `int` elements of the array that is returned are ordered to correspond to the commands in the batch, which are ordered according to the order in which they were added to the batch. The elements in the array returned by the method `executeBatch` may be one of the following:
  1. A number greater than or equal to zero -- indicates that the command was processed successfully and is an update count giving the number of rows in the database that were affected by the command's execution
  2. A value of `-2`-- indicates that the command was processed successfully but that the number of rows affected is unknown

     If one of the commands in a batch update fails to execute properly, this method throws a `BatchUpdateException`, and a JDBC driver may or may not continue to process the remaining commands in the batch. However, the driver's behavior must be consistent with a particular DBMS, either always continuing to process commands or never continuing to process commands. If the driver continues processing after a failure, the array returned by the method `BatchUpdateException.getUpdateCounts` will contain as many elements as there are commands in the batch, and at least one of the elements will be the following:

  3. A value of `-3`-- indicates that the command failed to execute successfully and occurs only if a driver continues to process commands after a command fails

  A driver is not required to implement this method. The possible implementations and return values have been modified in the Java 2 SDK, Standard Edition, version 1.3 to accommodate the option of continuing to proccess commands in a batch update after a `BatchUpdateException` obejct has been thrown.

  Specified by:
    `executeBatch` in interface `Statement`
  Overrides:
    `executeBatch` in class `AbstractPreparedStatement`
  Returns:
    an array of update counts containing one element for each command in the batch. The elements of the array are ordered according to the order in which commands were added to the batch.
  Throws:
    `SQLException` - if a database access error occurs or the driver does not support batch statements. Throws `BatchUpdateException`(a subclass of `SQLException`) if one of the commands sent to the database fails to execute properly or attempts to return a result set.
  See Also:
    What Is in the JDBC 2.0 API

### setSelectableProcedure

    public void setSelectableProcedure(boolean selectableProcedure)

  Description copied from interface: `FirebirdCallableStatement`
  Mark this callable statement as a call of the selectable procedure. By default callable statement uses "EXECUTE PROCEDURE" SQL statement to invoke stored procedures that return single row of output parameters or a result set. In former case it retrieves only the first row of the result set.

  Specified by:
    `setSelectableProcedure` in interface `FirebirdCallableStatement`
  Parameters:
    `selectableProcedure` - `true` if the called procedure is selectable.

### setRequiredTypes

    protected void setRequiredTypes()
                             throws SQLException

  Set required types for output parameters.

  Throws:
    `SQLException` - if something went wrong.

### prepareFixedStatement

    protected void prepareFixedStatement(String sql,
                                         boolean describeBind)
                                  throws GDSException,
                                         SQLException

  We allow multiple calls to this method without re-preparing the statement. This is an workaround to the issue that the statement is actually prepared only after all OUT parameters are registered.

  Overrides:
    `prepareFixedStatement` in class `AbstractPreparedStatement`
  Throws:
    `GDSException`
    `SQLException`

### getMetaData

    public ResultSetMetaData getMetaData()
                                  throws SQLException

  Since we deferred the statement preparation until all OUT params are registered, we ensure that the statement is prepared before the meta data for the callable statement is obtained.

  Specified by:
    `getMetaData` in interface `PreparedStatement`
  Overrides:
    `getMetaData` in class `AbstractPreparedStatement`
  Returns:
    the description of a `ResultSet` object's columns
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### execute

    public boolean execute()
                    throws SQLException

  Executes an execute stored procedure. Some prepared statements return multiple results; the `execute` method handles these complex statements as well as the simpler form of statements handled by the methods `executeQuery` and `executeUpdate`.

  Specified by:
    `execute` in interface `PreparedStatement`
  Overrides:
    `execute` in class `AbstractPreparedStatement`
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Statement.execute(java.lang.String)`

### executeQuery

    public ResultSet executeQuery()
                           throws SQLException

  Execute query. This method prepares statement before execution. Rest of the processing is done by superclass.

  Specified by:
    `executeQuery` in interface `PreparedStatement`
  Overrides:
    `executeQuery` in class `AbstractPreparedStatement`
  Returns:
    a `ResultSet` object that contains the data produced by the query; never `null`
  Throws:
    `SQLException` - if a database access error occurs

### executeUpdate

    public int executeUpdate()
                      throws SQLException

  Execute query. This method prepares statement before execution. Rest of the processing is done by superclass.

  Specified by:
    `executeUpdate` in interface `PreparedStatement`
  Overrides:
    `executeUpdate` in class `AbstractPreparedStatement`
  Returns:
    either the row count for INSERT, UPDATE or DELETE statements; or 0 for SQL statements that return nothing
  Throws:
    `SQLException` - if a database access error occurs

### internalExecute

    protected boolean internalExecute(boolean sendOutParams)
                               throws SQLException

  Execute statement internally. This method sets cached parameters. Rest of the processing is done by superclass.

  Overrides:
    `internalExecute` in class `AbstractPreparedStatement`
  Returns:
    `true` if the statement has more result sets.
  Throws:
    `SQLException`

### registerOutParameter

    public void registerOutParameter(int parameterIndex,
                                     int sqlType)
                              throws SQLException

  Registers the OUT parameter in ordinal position `parameterIndex` to the JDBC type `sqlType`. All OUT parameters must be registered before a stored procedure is executed.

  The JDBC type specified by `sqlType` for an OUT parameter determines the Java type that must be used in the `get` method to read the value of that parameter.

  If the JDBC type expected to be returned to this output parameter is specific to this particular database, `sqlType` should be `java.sql.Types.OTHER`. The method `getObject(int)` retrieves the value.

  Specified by:
    `registerOutParameter` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `sqlType` - the JDBC type code defined by `java.sql.Types`. If the parameter is of JDBC type `NUMERIC` or `DECIMAL`, the version of `registerOutParameter` that accepts a scale value should be used.
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Types`

### registerOutParameter

    public void registerOutParameter(int parameterIndex,
                                     int sqlType,
                                     int scale)
                              throws SQLException

  Registers the parameter in ordinal position `parameterIndex` to be of JDBC type `sqlType`. This method must be called before a stored procedure is executed.

  The JDBC type specified by `sqlType` for an OUT parameter determines the Java type that must be used in the `get` method to read the value of that parameter.

  This version of `registerOutParameter` should be used when the parameter is of JDBC type `NUMERIC` or `DECIMAL`.

  Specified by:
    `registerOutParameter` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `sqlType` - SQL type code defined by `java.sql.Types`.
    `scale` - the desired number of digits to the right of the decimal point. It must be greater than or equal to zero.
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Types`

### wasNull

    public boolean wasNull()
                    throws SQLException

  Indicates whether or not the last OUT parameter read had the value of SQL `NULL`. Note that this method should be called only after calling a `getXXX` method; otherwise, there is no value to use in determining whether it is `null` or not.

  Specified by:
    `wasNull` in interface `CallableStatement`
  Returns:
    `true` if the last parameter read was SQL `NULL`; `false` otherwise
  Throws:
    `SQLException` - if a database access error occurs

### getString

    public String getString(int parameterIndex)
                     throws SQLException

  Retrieves the value of a JDBC `CHAR`, `VARCHAR`, or `LONGVARCHAR` parameter as a `String` in the Java programming language.

  For the fixed-length type JDBC `CHAR`, the `String` object returned has exactly the same value the JDBC `CHAR` value had in the database, including any padding added by the database.

  Specified by:
    `getString` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getBoolean

    public boolean getBoolean(int parameterIndex)
                       throws SQLException

  Gets the value of a JDBC `BIT` parameter as a `boolean` in the Java programming language.

  Specified by:
    `getBoolean` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `false`.
  Throws:
    `SQLException` - if a database access error occurs

### getByte

    public byte getByte(int parameterIndex)
                 throws SQLException

  Gets the value of a JDBC `TINYINT` parameter as a `byte` in the Java programming language.

  Specified by:
    `getByte` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getShort

    public short getShort(int parameterIndex)
                   throws SQLException

  Gets the value of a JDBC `SMALLINT` parameter as a `short` in the Java programming language.

  Specified by:
    `getShort` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getInt

    public int getInt(int parameterIndex)
               throws SQLException

  Gets the value of a JDBC `INTEGER` parameter as an `int` in the Java programming language.

  Specified by:
    `getInt` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getLong

    public long getLong(int parameterIndex)
                 throws SQLException

  Gets the value of a JDBC `BIGINT` parameter as a `long` in the Java programming language.

  Specified by:
    `getLong` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getFloat

    public float getFloat(int parameterIndex)
                   throws SQLException

  Gets the value of a JDBC `FLOAT` parameter as a `float` in the Java programming language.

  Specified by:
    `getFloat` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getDouble

    public double getDouble(int parameterIndex)
                     throws SQLException

  Gets the value of a JDBC `DOUBLE` parameter as a `double` in the Java programming language.

  Specified by:
    `getDouble` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is 0.
  Throws:
    `SQLException` - if a database access error occurs

### getBigDecimal

    public BigDecimal getBigDecimal(int parameterIndex,
                                    int scale)
                             throws SQLException

  Deprecated.

  Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with scale digits to the right of the decimal point.

  Specified by:
    `getBigDecimal` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `scale` - the number of digits to the right of the decimal point
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getBytes

    public byte[] getBytes(int parameterIndex)
                    throws SQLException

  Gets the value of a JDBC `BINARY` or `VARBINARY` parameter as an array of `byte` values in the Java programming language.

  Specified by:
    `getBytes` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getDate

    public Date getDate(int parameterIndex)
                 throws SQLException

  Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object.

  Specified by:
    `getDate` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getTime

    public Time getTime(int parameterIndex)
                 throws SQLException

  Get the value of a JDBC `TIME` parameter as a `java.sql.Time` object.

  Specified by:
    `getTime` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getTimestamp

    public Timestamp getTimestamp(int parameterIndex)
                           throws SQLException

  Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object.

  Specified by:
    `getTimestamp` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getObject

    public Object getObject(int parameterIndex)
                     throws SQLException

  Gets the value of a parameter as an `Object` in the Java programming language.

  This method returns a Java object whose type corresponds to the JDBC type that was registered for this parameter using the method `registerOutParameter`. By registering the target JDBC type as `java.sql.Types.OTHER`, this method can be used to read database-specific abstract data types.

  Specified by:
    `getObject` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    A `java.lang.Object` holding the OUT parameter value.
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Types`

### getBigDecimal

    public BigDecimal getBigDecimal(int parameterIndex)
                             throws SQLException

  Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with as many digits to the right of the decimal point as the value contains.

  Specified by:
    `getBigDecimal` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value in full precision. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getObject

    public Object getObject(int parameterIndex,
                            Map map)
                     throws SQLException

  Returns an object representing the value of OUT parameter `i` and uses `map` for the custom mapping of the parameter value.

  This method returns a Java object whose type corresponds to the JDBC type that was registered for this parameter using the method `registerOutParameter`. By registering the target JDBC type as `java.sql.Types.OTHER`, this method can be used to read database-specific abstract data types.

  Specified by:
    `getObject` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `map` - the mapping from SQL type names to Java classes
  Returns:
    a `java.lang.Object` holding the OUT parameter value
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getRef

    public Ref getRef(int parameterIndex)
               throws SQLException

  Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.

  Specified by:
    `getRef` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value as a `Ref` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getBlob

    public Blob getBlob(int parameterIndex)
                 throws SQLException

  Gets the value of a JDBC `BLOB` parameter as a `Blob` object in the Java programming language.

  Specified by:
    `getBlob` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value as a `Blob` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getClob

    public Clob getClob(int parameterIndex)
                 throws SQLException

  Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.

  Specified by:
    `getClob` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value as a `Clob` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getArray

    public Array getArray(int parameterIndex)
                   throws SQLException

  Gets the value of a JDBC `ARRAY` parameter as an `Array` object in the Java programming language.

  Specified by:
    `getArray` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
  Returns:
    the parameter value as an `Array` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    What Is in the JDBC 2.0 API

### getDate

    public Date getDate(int parameterIndex,
                        Calendar cal)
                 throws SQLException

  Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object, using the given `Calendar` object to construct the date. With a `Calendar` object, the driver can calculate the date taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.

  Specified by:
    `getDate` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `cal` - the `Calendar` object the driver will use to construct the date
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getTime

    public Time getTime(int parameterIndex,
                        Calendar cal)
                 throws SQLException

  Gets the value of a JDBC `TIME` parameter as a `java.sql.Time` object, using the given `Calendar` object to construct the time. With a `Calendar` object, the driver can calculate the time taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.

  Specified by:
    `getTime` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `cal` - the `Calendar` object the driver will use to construct the time
  Returns:
    the parameter value; if the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### getTimestamp

    public Timestamp getTimestamp(int parameterIndex,
                                  Calendar cal)
                           throws SQLException

  Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object, using the given `Calendar` object to construct the `Timestamp` object. With a `Calendar` object, the driver can calculate the timestamp taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.

  Specified by:
    `getTimestamp` in interface `CallableStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, and so on
    `cal` - the `Calendar` object the driver will use to construct the timestamp
  Returns:
    the parameter value. If the value is SQL `NULL`, the result is `null`.
  Throws:
    `SQLException` - if a database access error occurs

### assertHasData

    protected void assertHasData(ResultSet rs)
                          throws SQLException

  Asserts if the current statement has data to return. It checks if the result set has a row with data.

  Parameters:
    `rs` - result set to test
  Throws:
    `SQLException` - when the result set has no data.

### getCurrentResultSet

    public ResultSet getCurrentResultSet()
                                  throws SQLException

  Description copied from interface: `FirebirdStatement`
  Get current result set. Behaviour of this method is similar to the behavior of the `Statement.getResultSet()`, except that this method can be called as much as you like.

  Specified by:
    `getCurrentResultSet` in interface `FirebirdStatement`
  Overrides:
    `getCurrentResultSet` in class `AbstractStatement`
  Returns:
    instance of `ResultSet` representing current result set or `null` if it is not available.
  Throws:
    `SQLException` - if database access error happened.

### getResultSet

    public ResultSet getResultSet()
                           throws SQLException

  Returns the current result as a `ResultSet` object. This method should be called only once per result. Calling this method twice with autocommit on and used will probably throw an inappropriate or uninformative exception.

  Specified by:
    `getResultSet` in interface `Statement`
  Overrides:
    `getResultSet` in class `AbstractStatement`
  Returns:
    the current result as a `ResultSet` object; `null` if the result is an update count or there are no more results
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `execute()`

### setArray

    public void setArray(int i,
                         Array x)
                  throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `Array` object. Sets an Array parameter.

  Specified by:
    `setArray` in interface `PreparedStatement`
  Overrides:
    `setArray` in class `AbstractPreparedStatement`
  Parameters:
    `i` - the first parameter is 1, the second is 2, ...
    `x` - an `Array` object that maps an SQL `ARRAY` value
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setAsciiStream

    public void setAsciiStream(int parameterIndex,
                               InputStream x,
                               int length)
                        throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  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 `PreparedStatement`
  Overrides:
    `setAsciiStream` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the Java input stream that contains the ASCII parameter value
    `length` - the number of bytes in the stream
  Throws:
    `SQLException` - if a database access error occurs

### setBigDecimal

    public void setBigDecimal(int parameterIndex,
                              BigDecimal x)
                       throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given BigDecimal

  Specified by:
    `setBigDecimal` in interface `PreparedStatement`
  Overrides:
    `setBigDecimal` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - The first parameter is 1, second is 2, ...
    `x` - The BigDecimal to be set as a parameter
  Throws:
    `SQLException` - if a database access error occurs

### setBinaryStream

    public void setBinaryStream(int parameterIndex,
                                InputStream inputStream,
                                int length)
                         throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given input stream, which will have the specified number of bytes.

  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 `PreparedStatement`
  Overrides:
    `setBinaryStream` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `inputStream` - the Java input stream
    `length` - the number of bytes in the stream
  Throws:
    `SQLException` - if a database access error occurs

### setBlob

    public void setBlob(int parameterIndex,
                        Blob blob)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `Blob` object.

  Specified by:
    `setBlob` in interface `PreparedStatement`
  Overrides:
    `setBlob` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `blob` - a `Blob` object that maps an SQL `BLOB` value
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setBoolean

    public void setBoolean(int parameterIndex,
                           boolean x)
                    throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given boolean value.

  Specified by:
    `setBoolean` in interface `PreparedStatement`
  Overrides:
    `setBoolean` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The boolean value to be set
  Throws:
    `SQLException` - if a database access occurs

### setByte

    public void setByte(int parameterIndex,
                        byte x)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given byte value.

  Specified by:
    `setByte` in interface `PreparedStatement`
  Overrides:
    `setByte` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The byte value to be set
  Throws:
    `SQLException` - if a database access occurs

### setBytes

    public void setBytes(int parameterIndex,
                         byte[] x)
                  throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Set the designated parameter to the given byte array.

  Specified by:
    `setBytes` in interface `PreparedStatement`
  Overrides:
    `setBytes` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The byte array to be set
  Throws:
    `SQLException` - if a database access occurs

### setCharacterStream

    public void setCharacterStream(int parameterIndex,
                                   Reader reader,
                                   int length)
                            throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  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 `PreparedStatement`
  Overrides:
    `setCharacterStream` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `reader` - the java reader which contains the UNICODE data
    `length` - the number of characters in the stream
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setClob

    public void setClob(int parameterIndex,
                        Clob x)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `Clob` object.

  Specified by:
    `setClob` in interface `PreparedStatement`
  Overrides:
    `setClob` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - a `Clob` object that maps an SQL `CLOB` value
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setDate

    public void setDate(int parameterIndex,
                        Date x,
                        Calendar cal)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `java.sql.Date` value, using the given `Calendar` object. The driver uses the `Calendar` object to construct an SQL `DATE` value, which the driver then sends to the database. With a a `Calendar` object, the driver can calculate the date taking into account a custom timezone. If no `Calendar` object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.

  Specified by:
    `setDate` in interface `PreparedStatement`
  Overrides:
    `setDate` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the parameter value
    `cal` - the `Calendar` object the driver will use to construct the date
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setDate

    public void setDate(int parameterIndex,
                        Date x)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given date value.

  Specified by:
    `setDate` in interface `PreparedStatement`
  Overrides:
    `setDate` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The date value to be set
  Throws:
    `SQLException` - if a database access occurs

### setDouble

    public void setDouble(int parameterIndex,
                          double x)
                   throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given double value.

  Specified by:
    `setDouble` in interface `PreparedStatement`
  Overrides:
    `setDouble` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The double value to be set
  Throws:
    `SQLException` - if a database access occurs

### setFloat

    public void setFloat(int parameterIndex,
                         float x)
                  throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given floate value.

  Specified by:
    `setFloat` in interface `PreparedStatement`
  Overrides:
    `setFloat` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The float value to be set
  Throws:
    `SQLException` - if a database access occurs

### setInt

    public void setInt(int parameterIndex,
                       int x)
                throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given int value.

  Specified by:
    `setInt` in interface `PreparedStatement`
  Overrides:
    `setInt` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The int value to be set
  Throws:
    `SQLException` - if a database access occurs

### setLong

    public void setLong(int parameterIndex,
                        long x)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given long value.

  Specified by:
    `setLong` in interface `PreparedStatement`
  Overrides:
    `setLong` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The long value to be set
  Throws:
    `SQLException` - if a database access occurs

### setNull

    public void setNull(int parameterIndex,
                        int sqlType,
                        String typeName)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to SQL `NULL`. This version of the method `setNull` should be used for user-defined types and REF type parameters. Examples of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and named array types.

  Note: To be portable, applications must give the SQL type code and the fully-qualified SQL type name when specifying a NULL user-defined or REF parameter. In the case of a user-defined type the name is the type name of the parameter itself. For a REF parameter, the name is the type name of the referenced type. If a JDBC driver does not need the type code or type name information, it may ignore it. Although it is intended for user-defined and Ref parameters, this method may be used to set a null parameter of any JDBC type. If the parameter does not have a user-defined or REF type, the given typeName is ignored.

  Specified by:
    `setNull` in interface `PreparedStatement`
  Overrides:
    `setNull` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `sqlType` - a value from `java.sql.Types`
    `typeName` - the fully-qualified name of an SQL user-defined type; ignored if the parameter is not a user-defined type or REF
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setNull

    public void setNull(int parameterIndex,
                        int sqlType)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to SQL `NULL`.

  Note: You must specify the parameter's SQL type.

  Specified by:
    `setNull` in interface `PreparedStatement`
  Overrides:
    `setNull` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `sqlType` - the SQL type code defined in `java.sql.Types`
  Throws:
    `SQLException` - if a database access error occurs

### setObject

    public void setObject(int parameterIndex,
                          Object x,
                          int targetSqlType,
                          int scale)
                   throws SQLException

  Description copied from class: `AbstractPreparedStatement`

  Sets the value of the designated parameter with the given object. The second argument must be an object type; for integral values, the `java.lang` equivalent objects should be used.

  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, Struct, 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 datatabase- specific abstract data types.

  Specified by:
    `setObject` in interface `PreparedStatement`
  Overrides:
    `setObject` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the object containing the input parameter value
    `targetSqlType` - the SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.
    `scale` - for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, this is the number of digits after the decimal point. For all other types, this value will be ignored.
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    `Types`

### setObject

    public void setObject(int parameterIndex,
                          Object x,
                          int targetSqlType)
                   throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the value of the designated parameter with the given object. This method is like the method `setObject` above, except that it assumes a scale of zero.

  Specified by:
    `setObject` in interface `PreparedStatement`
  Overrides:
    `setObject` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the object containing the input parameter value
    `targetSqlType` - the SQL type (as defined in java.sql.Types) to be sent to the database
  Throws:
    `SQLException` - if a database access error occurs

### setObject

    public void setObject(int parameterIndex,
                          Object x)
                   throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the value of the designated parameter with the given object.

  Specified by:
    `setObject` in interface `PreparedStatement`
  Overrides:
    `setObject` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the object containing the parameter value
  Throws:
    `SQLException` - if a database access error occurs

### setRef

    public void setRef(int parameterIndex,
                       Ref x)
                throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `REF(<structured-type>)` value.

  Specified by:
    `setRef` in interface `PreparedStatement`
  Overrides:
    `setRef` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - an SQL `REF` value
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setShort

    public void setShort(int parameterIndex,
                         short x)
                  throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given short value.

  Specified by:
    `setShort` in interface `PreparedStatement`
  Overrides:
    `setShort` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The short value to be set
  Throws:
    `SQLException` - if a database access occurs

### setString

    public void setString(int parameterIndex,
                          String x)
                   throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given String value.

  Specified by:
    `setString` in interface `PreparedStatement`
  Overrides:
    `setString` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The String value to be set
  Throws:
    `SQLException` - if a database access occurs

### setTime

    public void setTime(int parameterIndex,
                        Time x,
                        Calendar cal)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `java.sql.Time` value, using the given `Calendar` object. The driver uses the `Calendar` object to construct an SQL `TIME` value, which the driver then sends to the database. With a a `Calendar` object, the driver can calculate the time taking into account a custom timezone. If no `Calendar` object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.

  Specified by:
    `setTime` in interface `PreparedStatement`
  Overrides:
    `setTime` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the parameter value
    `cal` - the `Calendar` object the driver will use to construct the time
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setTime

    public void setTime(int parameterIndex,
                        Time x)
                 throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given Time value.

  Specified by:
    `setTime` in interface `PreparedStatement`
  Overrides:
    `setTime` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The Time value to be set
  Throws:
    `SQLException` - if a database access occurs

### setTimestamp

    public void setTimestamp(int parameterIndex,
                             Timestamp x,
                             Calendar cal)
                      throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given `java.sql.Timestamp` value, using the given `Calendar` object. The driver uses the `Calendar` object to construct an SQL `TIMESTAMP` value, which the driver then sends to the database. With a a `Calendar` object, the driver can calculate the timestamp taking into account a custom timezone. If no `Calendar` object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.

  Specified by:
    `setTimestamp` in interface `PreparedStatement`
  Overrides:
    `setTimestamp` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the parameter value
    `cal` - the `Calendar` object the driver will use to construct the timestamp
  Throws:
    `SQLException` - if a database access error occurs
  See Also:
    What Is in the JDBC 2.0 API

### setTimestamp

    public void setTimestamp(int parameterIndex,
                             Timestamp x)
                      throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given Timestamp value.

  Specified by:
    `setTimestamp` in interface `PreparedStatement`
  Overrides:
    `setTimestamp` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - The Timestamp value to be set
  Throws:
    `SQLException` - if a database access occurs

### setUnicodeStream

    public void setUnicodeStream(int parameterIndex,
                                 InputStream x,
                                 int length)
                          throws SQLException

  Description copied from class: `AbstractPreparedStatement`
  Sets the designated parameter to the given input stream, which will have the specified number of bytes. When a very large UNICODE value is input to a `LONGVARCHAR` 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. The JDBC driver will do any necessary conversion from UNICODE to the database char format. The byte format of the Unicode stream must be Java UTF-8, as defined in the Java Virtual Machine Specification.

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

  Specified by:
    `setUnicodeStream` in interface `PreparedStatement`
  Overrides:
    `setUnicodeStream` in class `AbstractPreparedStatement`
  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2, ...
    `x` - the java input stream which contains the UNICODE parameter value
    `length` - the number of bytes in the stream
  Throws:
    `SQLException` - if a database access error occurs

Copyright © 2001-2010. All Rights Reserved.