Module org.firebirdsql.jaybird
Package org.firebirdsql.jdbc

# Class FBCallableStatement

java.lang.Object
org.firebirdsql.jdbc.AbstractStatement
org.firebirdsql.jdbc.FBStatement
org.firebirdsql.jdbc.FBPreparedStatement
org.firebirdsql.jdbc.FBCallableStatement

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

@InternalApi @NullMarked public class FBCallableStatement extends FBPreparedStatement implements CallableStatement, FirebirdCallableStatement
Implementation of `CallableStatement`.

This class is internal API of Jaybird. Future versions may radically change, move, or make inaccessible this type. For the public API, refer to the `CallableStatement` and `FirebirdCallableStatement` interfaces.

Author:
  David Jencks, Roman Rokytskyy, Steven Jardine, Mark Rotteveel

## Nested Class Summary

## Nested classes/interfaces inherited from class org.firebirdsql.jdbc.FBStatement

`FBStatement.StatementResult`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected FBProcedureCall`
`procedureCall`
`protected boolean`
`selectableProcedure`

### Fields inherited from class org.firebirdsql.jdbc.FBPreparedStatement

`METHOD_NOT_SUPPORTED`

### Fields inherited from class org.firebirdsql.jdbc.FBStatement

`currentStatementResult, fbStatement, gdsHelper, isSingletonResult, specialResult, statementListener`

### Fields inherited from class org.firebirdsql.jdbc.AbstractStatement

`connection`

### 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_SAVEPOINT, TYPE_SELECT, TYPE_SELECT_FOR_UPDATE, TYPE_SET_GENERATOR, TYPE_START_TRANS, TYPE_UPDATE`

### 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`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FBCallableStatement(FBConnection connection, String sql, ResultSetBehavior rsBehavior, StoredProcedureMetaData storedProcMetaData, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addBatch()`
`protected ResultSet`
`assertHasData(@Nullable ResultSet rs)`
Asserts if the current statement has data to return.
`void`
`clearBatch()`
`void`
`close()`
`protected FBResultSet`
`createSpecialResultSet(@Nullable FBObjectListener.ResultSetListener resultSetListener)`
Create the result set for `specialResult`.
`boolean`
`execute()`
`protected List<Long>`
`executeBatchInternal()`
`ResultSet`
`executeQuery()`
`int`
`executeUpdate()`
`protected ResultSet`
`getAndAssertSingletonResultSet()`
Returns the result set for the singleton row of the callable statement and asserts it has data.
`@Nullable Array`
`getArray(int parameterIndex)`
`@Nullable Array`
`getArray(String colName)`
`@Nullable BigDecimal`
`getBigDecimal(int parameterIndex)`
`@Nullable BigDecimal`
`getBigDecimal(int parameterIndex, int scale)`
Deprecated.
`@Nullable BigDecimal`
`getBigDecimal(String colName)`
`@Nullable Blob`
`getBlob(int parameterIndex)`
`@Nullable Blob`
`getBlob(String colName)`
`boolean`
`getBoolean(int parameterIndex)`
`boolean`
`getBoolean(String colName)`
`byte`
`getByte(int parameterIndex)`
`byte`
`getByte(String colName)`
`byte @Nullable []`
`getBytes(int parameterIndex)`
`byte @Nullable []`
`getBytes(String colName)`
`@Nullable Reader`
`getCharacterStream(int parameterIndex)`
`@Nullable Reader`
`getCharacterStream(String parameterName)`
`@Nullable Clob`
`getClob(int parameterIndex)`
`@Nullable Clob`
`getClob(String colName)`
`Date`
`getDate(int parameterIndex)`
`@Nullable Date`
`getDate(int parameterIndex, @Nullable Calendar cal)`
`@Nullable Date`
`getDate(String colName)`
`@Nullable Date`
`getDate(String colName, @Nullable Calendar cal)`
`double`
`getDouble(int parameterIndex)`
`double`
`getDouble(String colName)`
`FirebirdParameterMetaData`
`getFirebirdParameterMetaData()`
`float`
`getFloat(int parameterIndex)`
`float`
`getFloat(String colName)`
`ResultSet`
`getGeneratedKeys()`
`int`
`getInt(int parameterIndex)`
`int`
`getInt(String colName)`
`long`
`getLong(int parameterIndex)`
`long`
`getLong(String colName)`
`@Nullable ResultSetMetaData`
`getMetaData()`
`@Nullable Reader`
`getNCharacterStream(int parameterIndex)`
`@Nullable Reader`
`getNCharacterStream(String parameterName)`
`@Nullable NClob`
`getNClob(int parameterIndex)`
`@Nullable NClob`
`getNClob(String parameterName)`
`@Nullable String`
`getNString(int parameterIndex)`
`@Nullable String`
`getNString(String parameterName)`
`@Nullable Object`
`getObject(int parameterIndex)`
`<T extends @Nullable Object>
@Nullable T`
`getObject(int parameterIndex, Class<T> type)`
`@Nullable Object`
`getObject(int parameterIndex, Map<String,Class<?>> map)`
`@Nullable Object`
`getObject(String colName)`
`<T extends @Nullable Object>
@Nullable T`
`getObject(String parameterName, Class<T> type)`
`@Nullable Object`
`getObject(String colName, Map<String,Class<?>> map)`
`@Nullable Ref`
`getRef(int parameterIndex)`
`@Nullable Ref`
`getRef(String colName)`
`@Nullable RowId`
`getRowId(int parameterIndex)`
`@Nullable RowId`
`getRowId(String parameterName)`
`short`
`getShort(int parameterIndex)`
`short`
`getShort(String colName)`
`@Nullable SQLXML`
`getSQLXML(int parameterIndex)`
`@Nullable SQLXML`
`getSQLXML(String parameterName)`
`@Nullable String`
`getString(int parameterIndex)`
`@Nullable String`
`getString(String colName)`
`@Nullable Time`
`getTime(int parameterIndex)`
`@Nullable Time`
`getTime(int parameterIndex, @Nullable Calendar cal)`
`@Nullable Time`
`getTime(String colName)`
`@Nullable Time`
`getTime(String colName, @Nullable Calendar cal)`
`@Nullable Timestamp`
`getTimestamp(int parameterIndex)`
`@Nullable Timestamp`
`getTimestamp(int parameterIndex, @Nullable Calendar cal)`
`@Nullable Timestamp`
`getTimestamp(String colName)`
`@Nullable Timestamp`
`getTimestamp(String colName, @Nullable Calendar cal)`
`@Nullable URL`
`getURL(int parameterIndex)`
`@Nullable URL`
`getURL(String colName)`
`protected boolean`
`internalExecute(boolean sendOutParams)`
Execute this statement.
`boolean`
`isSelectableProcedure()`
Retrieve if this callable statement has been marked as selectable.
`protected void`
`prepareFixedStatement(String sql)`
We allow multiple calls to this method without re-preparing the statement.
`void`
`registerOutParameter(int parameterIndex, int sqlType)`
`void`
`registerOutParameter(int parameterIndex, int sqlType, int scale)`
`void`
`registerOutParameter(int parameterIndex, int sqlType, String typeName)`
`void`
`registerOutParameter(int parameterIndex, SQLType sqlType)`
`void`
`registerOutParameter(int parameterIndex, SQLType sqlType, int scale)`
`void`
`registerOutParameter(int parameterIndex, SQLType sqlType, String typeName)`
`void`
`registerOutParameter(String param1, int param2)`
`void`
`registerOutParameter(String param1, int param2, int param3)`
`void`
`registerOutParameter(String param1, int param2, String param3)`
`void`
`registerOutParameter(String parameterName, SQLType sqlType)`
`void`
`registerOutParameter(String parameterName, SQLType sqlType, int scale)`
`void`
`registerOutParameter(String parameterName, SQLType sqlType, String typeName)`
`void`
`setAsciiStream(String parameterName, @Nullable InputStream x)`
`void`
`setAsciiStream(String param1, @Nullable InputStream param2, int param3)`
`void`
`setAsciiStream(String parameterName, @Nullable InputStream x, long length)`
`void`
`setBigDecimal(int parameterIndex, @Nullable BigDecimal x)`
`void`
`setBigDecimal(String param1, @Nullable BigDecimal param2)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, int length)`
`void`
`setBinaryStream(int parameterIndex, @Nullable InputStream inputStream, long length)`
`void`
`setBinaryStream(String parameterName, @Nullable InputStream x)`
`void`
`setBinaryStream(String param1, @Nullable InputStream param2, int param3)`
`void`
`setBinaryStream(String parameterName, @Nullable InputStream x, long length)`
`void`
`setBlob(int parameterIndex, @Nullable InputStream inputStream)`
`void`
`setBlob(int parameterIndex, @Nullable InputStream inputStream, long length)`
`void`
`setBlob(int parameterIndex, @Nullable Blob blob)`
`void`
`setBlob(String parameterName, @Nullable InputStream inputStream)`
`void`
`setBlob(String parameterName, @Nullable InputStream inputStream, long length)`
`void`
`setBlob(String parameterName, @Nullable Blob x)`
`void`
`setBoolean(int parameterIndex, boolean x)`
`void`
`setBoolean(String param1, boolean param2)`
`void`
`setByte(int parameterIndex, byte x)`
`void`
`setByte(String param1, byte param2)`
`void`
`setBytes(int parameterIndex, byte @Nullable [] x)`
`void`
`setBytes(String param1, byte @Nullable [] param2)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader, int length)`
`void`
`setCharacterStream(int parameterIndex, @Nullable Reader reader, long length)`
`void`
`setCharacterStream(String parameterName, @Nullable Reader reader)`
`void`
`setCharacterStream(String param1, @Nullable Reader param2, int param3)`
`void`
`setCharacterStream(String parameterName, @Nullable Reader reader, long length)`
`void`
`setClob(int parameterIndex, @Nullable Reader reader)`
`void`
`setClob(int parameterIndex, @Nullable Reader reader, long length)`
`void`
`setClob(int parameterIndex, @Nullable Clob x)`
`void`
`setClob(String parameterName, @Nullable Reader reader)`
`void`
`setClob(String parameterName, @Nullable Reader reader, long length)`
`void`
`setClob(String parameterName, @Nullable Clob x)`
`void`
`setDate(int parameterIndex, @Nullable Date x)`
`void`
`setDate(int parameterIndex, @Nullable Date x, @Nullable Calendar cal)`
`void`
`setDate(String param1, @Nullable Date param2)`
`void`
`setDate(String param1, @Nullable Date param2, @Nullable Calendar param3)`
`void`
`setDouble(int parameterIndex, double x)`
`void`
`setDouble(String param1, double param2)`
`void`
`setFloat(int parameterIndex, float x)`
`void`
`setFloat(String param1, float param2)`
`void`
`setInt(int parameterIndex, int x)`
`void`
`setInt(String param1, int param2)`
`void`
`setLong(int parameterIndex, long x)`
`void`
`setLong(String param1, long param2)`
`void`
`setNCharacterStream(String parameterName, @Nullable Reader value)`
`void`
`setNCharacterStream(String parameterName, @Nullable Reader value, long length)`
`void`
`setNClob(String parameterName, @Nullable Reader reader)`
`void`
`setNClob(String parameterName, @Nullable Reader reader, long length)`
`void`
`setNClob(String parameterName, @Nullable NClob value)`
`void`
`setNString(String parameterName, @Nullable String value)`
`void`
`setNull(int parameterIndex, int sqlType)`
`void`
`setNull(int parameterIndex, int sqlType, String typeName)`
`void`
`setNull(String param1, int param2)`
`void`
`setNull(String param1, int param2, String param3)`
`void`
`setObject(int parameterIndex, @Nullable Object x)`
`void`
`setObject(int parameterIndex, @Nullable Object x, int targetSqlType)`
`void`
`setObject(int parameterIndex, @Nullable Object x, int targetSqlType, int scaleOrLength)`
`void`
`setObject(String param1, @Nullable Object param2)`
`void`
`setObject(String param1, @Nullable Object param2, int param3)`
`void`
`setObject(String param1, @Nullable Object param2, int param3, int param4)`
`protected void`
`setRequiredTypes()`
Set required types for output parameters.
`void`
`setRowId(String parameterName, @Nullable RowId x)`
`void`
`setSelectableProcedure(boolean selectableProcedure)`
Mark this callable statement as a call of the selectable procedure.
`void`
`setShort(int parameterIndex, short x)`
`void`
`setShort(String param1, short param2)`
`void`
`setSQLXML(String parameterName, @Nullable SQLXML xmlObject)`
`void`
`setString(int parameterIndex, @Nullable String x)`
`void`
`setString(String param1, @Nullable String param2)`
`void`
`setTime(int parameterIndex, @Nullable Time x)`
`void`
`setTime(int parameterIndex, @Nullable Time x, @Nullable Calendar cal)`
`void`
`setTime(String param1, @Nullable Time param2)`
`void`
`setTime(String param1, @Nullable Time param2, @Nullable Calendar param3)`
`void`
`setTimestamp(int parameterIndex, @Nullable Timestamp x)`
`void`
`setTimestamp(int parameterIndex, @Nullable Timestamp x, @Nullable Calendar cal)`
`void`
`setTimestamp(String param1, @Nullable Timestamp param2)`
`void`
`setTimestamp(String param1, @Nullable Timestamp param2, @Nullable Calendar param3)`
`void`
`setURL(String param1, @Nullable URL param2)`
`boolean`
`wasNull()`

### Methods inherited from class org.firebirdsql.jdbc.FBPreparedStatement

`addBatch, clearParameters, completeStatement, execute, execute, execute, execute, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getField, getParameterDescriptor, getParameterMetaData, isGeneratedKeyQuery, notifyStatementCompleted, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setObject, setObject, setRef, setRowId, setSQLXML, setUnicodeStream, setURL`

### Methods inherited from class org.firebirdsql.jdbc.FBStatement

`cancel, createBatchUpdateException, createBatchUpdateException, createStatementListener, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeBatch, executeImpl, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getCurrentResultSet, getDeletedRowsCount, getExecutionPlan, getExplainedExecutionPlan, getInsertedRowsCount, getLargeUpdateCount, getLargeUpdateCountMinZero, getMaxFieldSize, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSet, getStatementHandle, getStatementType, getUpdateCount, getUpdateCountMinZero, getUpdatedRowsCount, hasOpenResultSet, internalExecute, internalExecute, isSimpleIdentifier, isValid, isWrapperFor, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, setEscapeProcessing, setMaxFieldSize, setQueryTimeout, unwrap`

### Methods inherited from class org.firebirdsql.jdbc.AbstractStatement

`addWarning, checkValidity, clearWarnings, closeOnCompletion, completeStatement, equals, fetchConfig, getConnection, getCursorName, getFetchDirection, getFetchSize, getLargeMaxRows, getLocalStatementId, getMaxRows, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getWarnings, hashCode, isClosed, isCloseOnCompletion, isPoolable, performCloseOnCompletion, resultSetBehavior, setCursorName, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxRows, setPoolable, withLock`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.sql.CallableStatement

`setObject, setObject`

### Methods inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement

`getStatementType`

### Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement

`getCurrentResultSet, getDeletedRowsCount, getExecutionPlan, getExplainedExecutionPlan, getInsertedRowsCount, getLastExecutionPlan, getLastExplainedExecutionPlan, getLocalStatementId, getUpdatedRowsCount, hasOpenResultSet, isValid`

### Methods inherited from interface java.sql.PreparedStatement

`clearParameters, executeLargeUpdate, getParameterMetaData, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setObject, setObject, setRef, setRowId, setSQLXML, setUnicodeStream, setURL`

### Methods inherited from interface java.sql.Statement

`addBatch, cancel, clearWarnings, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

## Field Details

### selectableProcedure

protected boolean selectableProcedure

### procedureCall

protected FBProcedureCall procedureCall

## Constructor Details

### FBCallableStatement

protected FBCallableStatement(FBConnection connection, String sql, ResultSetBehavior rsBehavior, StoredProcedureMetaData storedProcMetaData, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener) throws SQLException

Throws:
  `SQLException`

## Method Details

### close

public void close() throws SQLException
Description copied from class: `AbstractStatement`

Subclasses overriding this method are expected to call this method with `super.close()` at an appropriate point to mark it closed.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Overrides:
  `close` in class `FBPreparedStatement`
Throws:
  `SQLException`

### getFirebirdParameterMetaData

public FirebirdParameterMetaData getFirebirdParameterMetaData() throws SQLException

Overrides:
  `getFirebirdParameterMetaData` in class `FBPreparedStatement`
Throws:
  `SQLException`

### addBatch

public void addBatch() throws SQLException

Specified by:
  `addBatch` in interface `PreparedStatement`
Overrides:
  `addBatch` in class `FBPreparedStatement`
Throws:
  `SQLException`

### clearBatch

public void clearBatch() throws SQLException

Specified by:
  `clearBatch` in interface `Statement`
Overrides:
  `clearBatch` in class `FBPreparedStatement`
Throws:
  `SQLException`

### executeBatchInternal

protected List<Long> executeBatchInternal() throws SQLException

Overrides:
  `executeBatchInternal` in class `FBPreparedStatement`
Throws:
  `SQLException`

### 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.
See Also:
  - `FirebirdCallableStatement.isSelectableProcedure()`

### isSelectableProcedure

public boolean isSelectableProcedure()
Description copied from interface: `FirebirdCallableStatement`
Retrieve if this callable statement has been marked as selectable.

Starting from Firebird 2.1, this value is set automatically from metadata stored in the database. Prior to Firebird 2.1, it must be set manually.

Specified by:
  `isSelectableProcedure` in interface `FirebirdCallableStatement`
Returns:
  `true` if the called procedure is selectable, false otherwise
See Also:
  - `FirebirdCallableStatement.setSelectableProcedure(boolean)`

### setRequiredTypes

protected void setRequiredTypes() throws SQLException
Set required types for output parameters.

Throws:
  `SQLException` - if something went wrong.

### prepareFixedStatement

protected void prepareFixedStatement(String sql) throws SQLException
We allow multiple calls to this method without re-preparing the statement. This is a workaround to the issue that the statement is actually prepared only after all OUT parameters are registered.

Overrides:
  `prepareFixedStatement` in class `FBPreparedStatement`
Throws:
  `SQLException`

### getMetaData

public @Nullable 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 `FBPreparedStatement`
Throws:
  `SQLException`

### execute

public boolean execute() throws SQLException

Specified by:
  `execute` in interface `PreparedStatement`
Overrides:
  `execute` in class `FBPreparedStatement`
Throws:
  `SQLException`

### executeQuery

public ResultSet executeQuery() throws SQLException

Specified by:
  `executeQuery` in interface `PreparedStatement`
Overrides:
  `executeQuery` in class `FBPreparedStatement`
Throws:
  `SQLException`

### executeUpdate

public int executeUpdate() throws SQLException

Specified by:
  `executeUpdate` in interface `PreparedStatement`
Overrides:
  `executeUpdate` in class `FBPreparedStatement`
Throws:
  `SQLException`

### internalExecute

protected boolean internalExecute(boolean sendOutParams) throws SQLException
Description copied from class: `FBPreparedStatement`
Execute this statement. Method checks whether all parameters are set, flushes all "flushable" fields that might contain cached data and executes the statement.

Overrides:
  `internalExecute` in class `FBPreparedStatement`
Parameters:
  `sendOutParams` - Determines if the XSQLDA structure should be sent to the database
Returns:
  `true` if the statement has more result sets.
Throws:
  `SQLException`

### createSpecialResultSet

protected FBResultSet createSpecialResultSet(@Nullable FBObjectListener.ResultSetListener resultSetListener) throws SQLException
Description copied from class: `FBStatement`
Create the result set for `specialResult`.

Should only be called from `FBStatement.getResultSet(boolean)`. This exists because `FBCallableStatement` needs to create the result set in a slightly different way to account for the fact that the blobs were already cached earlier.

Overrides:
  `createSpecialResultSet` in class `FBStatement`
Parameters:
  `resultSetListener` - result set listener (can be `null`)
Returns:
  result set wrapping `specialResult`
Throws:
  `SQLException`

### registerOutParameter

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

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

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

Implementation note: This method will behave the same as calling `registerOutParameter(int, int)`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

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

Implementation note: behaves as `registerOutParameter(int, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

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

Implementation note: behaves as `registerOutParameter(int, int, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

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

Implementation note: behaves as `registerOutParameter(int, int, String)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### wasNull

public boolean wasNull() throws SQLException

Specified by:
  `wasNull` in interface `CallableStatement`
Throws:
  `SQLException`

### getString

public @Nullable String getString(int parameterIndex) throws SQLException

Specified by:
  `getString` in interface `CallableStatement`
Throws:
  `SQLException`

### getBoolean

public boolean getBoolean(int parameterIndex) throws SQLException

Specified by:
  `getBoolean` in interface `CallableStatement`
Throws:
  `SQLException`

### getByte

public byte getByte(int parameterIndex) throws SQLException

Specified by:
  `getByte` in interface `CallableStatement`
Throws:
  `SQLException`

### getShort

public short getShort(int parameterIndex) throws SQLException

Specified by:
  `getShort` in interface `CallableStatement`
Throws:
  `SQLException`

### getInt

public int getInt(int parameterIndex) throws SQLException

Specified by:
  `getInt` in interface `CallableStatement`
Throws:
  `SQLException`

### getLong

public long getLong(int parameterIndex) throws SQLException

Specified by:
  `getLong` in interface `CallableStatement`
Throws:
  `SQLException`

### getFloat

public float getFloat(int parameterIndex) throws SQLException

Specified by:
  `getFloat` in interface `CallableStatement`
Throws:
  `SQLException`

### getDouble

public double getDouble(int parameterIndex) throws SQLException

Specified by:
  `getDouble` in interface `CallableStatement`
Throws:
  `SQLException`

### getBigDecimal

@Deprecated(since="1") public @Nullable BigDecimal getBigDecimal(int parameterIndex, int scale) throws SQLException
Deprecated.

Specified by:
  `getBigDecimal` in interface `CallableStatement`
Throws:
  `SQLException`

### getBytes

public byte @Nullable [] getBytes(int parameterIndex) throws SQLException

Specified by:
  `getBytes` in interface `CallableStatement`
Throws:
  `SQLException`

### getDate

public Date getDate(int parameterIndex) throws SQLException

Specified by:
  `getDate` in interface `CallableStatement`
Throws:
  `SQLException`

### getTime

public @Nullable Time getTime(int parameterIndex) throws SQLException

Specified by:
  `getTime` in interface `CallableStatement`
Throws:
  `SQLException`

### getTimestamp

public @Nullable Timestamp getTimestamp(int parameterIndex) throws SQLException

Specified by:
  `getTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public @Nullable Object getObject(int parameterIndex) throws SQLException

Implementation note: the registered type is ignored, and the type derived from the actual datatype will be used.

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public @Nullable Object getObject(String colName) throws SQLException

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public @Nullable Object getObject(int parameterIndex, Map<String,Class<?>> map) throws SQLException

Implementation note: the registered type is ignored, and the type derived from the actual datatype will be used.

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public @Nullable Object getObject(String colName, Map<String,Class<?>> map) throws SQLException

Implementation note: the registered type is ignored, and the type derived from the actual datatype will be used.

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public <T extends @Nullable Object> @Nullable T getObject(int parameterIndex, Class<T> type) throws SQLException

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getObject

public <T extends @Nullable Object> @Nullable T getObject(String parameterName, Class<T> type) throws SQLException

Specified by:
  `getObject` in interface `CallableStatement`
Throws:
  `SQLException`

### getBigDecimal

public @Nullable BigDecimal getBigDecimal(int parameterIndex) throws SQLException

Specified by:
  `getBigDecimal` in interface `CallableStatement`
Throws:
  `SQLException`

### getRef

public @Nullable Ref getRef(int parameterIndex) throws SQLException

Specified by:
  `getRef` in interface `CallableStatement`
Throws:
  `SQLException`

### getBlob

public @Nullable Blob getBlob(int parameterIndex) throws SQLException

Specified by:
  `getBlob` in interface `CallableStatement`
Throws:
  `SQLException`

### getClob

public @Nullable Clob getClob(int parameterIndex) throws SQLException

Specified by:
  `getClob` in interface `CallableStatement`
Throws:
  `SQLException`

### getArray

public @Nullable Array getArray(int parameterIndex) throws SQLException

Specified by:
  `getArray` in interface `CallableStatement`
Throws:
  `SQLException`

### getDate

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

Specified by:
  `getDate` in interface `CallableStatement`
Throws:
  `SQLException`

### getTime

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

Specified by:
  `getTime` in interface `CallableStatement`
Throws:
  `SQLException`

### getTimestamp

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

Specified by:
  `getTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### getURL

public @Nullable URL getURL(int parameterIndex) throws SQLException

Specified by:
  `getURL` in interface `CallableStatement`
Throws:
  `SQLException`

### getString

public @Nullable String getString(String colName) throws SQLException

Specified by:
  `getString` in interface `CallableStatement`
Throws:
  `SQLException`

### getBoolean

public boolean getBoolean(String colName) throws SQLException

Specified by:
  `getBoolean` in interface `CallableStatement`
Throws:
  `SQLException`

### getByte

public byte getByte(String colName) throws SQLException

Specified by:
  `getByte` in interface `CallableStatement`
Throws:
  `SQLException`

### getShort

public short getShort(String colName) throws SQLException

Specified by:
  `getShort` in interface `CallableStatement`
Throws:
  `SQLException`

### getInt

public int getInt(String colName) throws SQLException

Specified by:
  `getInt` in interface `CallableStatement`
Throws:
  `SQLException`

### getLong

public long getLong(String colName) throws SQLException

Specified by:
  `getLong` in interface `CallableStatement`
Throws:
  `SQLException`

### getFloat

public float getFloat(String colName) throws SQLException

Specified by:
  `getFloat` in interface `CallableStatement`
Throws:
  `SQLException`

### getDouble

public double getDouble(String colName) throws SQLException

Specified by:
  `getDouble` in interface `CallableStatement`
Throws:
  `SQLException`

### getBytes

public byte @Nullable [] getBytes(String colName) throws SQLException

Specified by:
  `getBytes` in interface `CallableStatement`
Throws:
  `SQLException`

### getDate

public @Nullable Date getDate(String colName) throws SQLException

Specified by:
  `getDate` in interface `CallableStatement`
Throws:
  `SQLException`

### getTime

public @Nullable Time getTime(String colName) throws SQLException

Specified by:
  `getTime` in interface `CallableStatement`
Throws:
  `SQLException`

### getTimestamp

public @Nullable Timestamp getTimestamp(String colName) throws SQLException

Specified by:
  `getTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### getBigDecimal

public @Nullable BigDecimal getBigDecimal(String colName) throws SQLException

Specified by:
  `getBigDecimal` in interface `CallableStatement`
Throws:
  `SQLException`

### getRef

public @Nullable Ref getRef(String colName) throws SQLException

Specified by:
  `getRef` in interface `CallableStatement`
Throws:
  `SQLException`

### getBlob

public @Nullable Blob getBlob(String colName) throws SQLException

Specified by:
  `getBlob` in interface `CallableStatement`
Throws:
  `SQLException`

### getClob

public @Nullable Clob getClob(String colName) throws SQLException

Specified by:
  `getClob` in interface `CallableStatement`
Throws:
  `SQLException`

### getArray

public @Nullable Array getArray(String colName) throws SQLException

Specified by:
  `getArray` in interface `CallableStatement`
Throws:
  `SQLException`

### getDate

public @Nullable Date getDate(String colName, @Nullable Calendar cal) throws SQLException

Specified by:
  `getDate` in interface `CallableStatement`
Throws:
  `SQLException`

### getTime

public @Nullable Time getTime(String colName, @Nullable Calendar cal) throws SQLException

Specified by:
  `getTime` in interface `CallableStatement`
Throws:
  `SQLException`

### getTimestamp

public @Nullable Timestamp getTimestamp(String colName, @Nullable Calendar cal) throws SQLException

Specified by:
  `getTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### getURL

public @Nullable URL getURL(String colName) throws SQLException

Specified by:
  `getURL` in interface `CallableStatement`
Throws:
  `SQLException`

### getCharacterStream

public @Nullable Reader getCharacterStream(int parameterIndex) throws SQLException

Specified by:
  `getCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### getCharacterStream

public @Nullable Reader getCharacterStream(String parameterName) throws SQLException

Specified by:
  `getCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### getNCharacterStream

public @Nullable Reader getNCharacterStream(int parameterIndex) throws SQLException

Implementation note: This method behaves exactly the same as `getCharacterStream(int)`.

Specified by:
  `getNCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### getNCharacterStream

public @Nullable Reader getNCharacterStream(String parameterName) throws SQLException

Implementation note: This method behaves exactly the same as `getCharacterStream(String)` .

Specified by:
  `getNCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### getNString

public @Nullable String getNString(int parameterIndex) throws SQLException

Implementation note: This method behaves exactly the same as `getString(int)`.

Specified by:
  `getNString` in interface `CallableStatement`
Throws:
  `SQLException`

### getNString

public @Nullable String getNString(String parameterName) throws SQLException

Implementation note: This method behaves exactly the same as `getString(String)`.

Specified by:
  `getNString` in interface `CallableStatement`
Throws:
  `SQLException`

### setAsciiStream

public void setAsciiStream(String parameterName, @Nullable InputStream x, long length) throws SQLException

Specified by:
  `setAsciiStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setAsciiStream

public void setAsciiStream(String parameterName, @Nullable InputStream x) throws SQLException

Specified by:
  `setAsciiStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(String parameterName, @Nullable InputStream x, long length) throws SQLException

Specified by:
  `setBinaryStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(String parameterName, @Nullable InputStream x) throws SQLException

Specified by:
  `setBinaryStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(String parameterName, @Nullable Blob x) throws SQLException

Specified by:
  `setBlob` in interface `CallableStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(String parameterName, @Nullable InputStream inputStream, long length) throws SQLException

Specified by:
  `setBlob` in interface `CallableStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(String parameterName, @Nullable InputStream inputStream) throws SQLException

Specified by:
  `setBlob` in interface `CallableStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(String parameterName, @Nullable Reader reader, long length) throws SQLException

Specified by:
  `setCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(String parameterName, @Nullable Reader reader) throws SQLException

Specified by:
  `setCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setClob

public void setClob(String parameterName, @Nullable Clob x) throws SQLException

Specified by:
  `setClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setClob

public void setClob(String parameterName, @Nullable Reader reader, long length) throws SQLException

Specified by:
  `setClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setClob

public void setClob(String parameterName, @Nullable Reader reader) throws SQLException

Specified by:
  `setClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setNCharacterStream

public void setNCharacterStream(String parameterName, @Nullable Reader value, long length) throws SQLException

Implementation note: This method behaves exactly the same as `setCharacterStream(String, Reader, long)`.

Specified by:
  `setNCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setNCharacterStream

public void setNCharacterStream(String parameterName, @Nullable Reader value) throws SQLException

Implementation note: This method behaves exactly the same as `setCharacterStream(String, Reader)`.

Specified by:
  `setNCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(String parameterName, @Nullable Reader reader, long length) throws SQLException

Implementation note: This method behaves exactly the same as `setClob(String, Reader, long)`.

Specified by:
  `setNClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(String parameterName, @Nullable Reader reader) throws SQLException

Implementation note: This method behaves exactly the same as `setClob(String, Reader)`.

Specified by:
  `setNClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setNString

public void setNString(String parameterName, @Nullable String value) throws SQLException

Implementation note: This method behaves exactly the same as `setString(String, String)`.

Specified by:
  `setNString` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String param1, int param2) throws SQLException

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String param1, int param2, int param3) throws SQLException

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String param1, int param2, String param3) throws SQLException

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String parameterName, SQLType sqlType) throws SQLException

Implementation note: behaves as `registerOutParameter(String, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String parameterName, SQLType sqlType, int scale) throws SQLException

Implementation note: behaves as `registerOutParameter(String, int, int)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

public void registerOutParameter(String parameterName, SQLType sqlType, String typeName) throws SQLException

Implementation note: behaves as `registerOutParameter(String, int, String)` called with `SQLType.getVendorTypeNumber()`.

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### setURL

public void setURL(String param1, @Nullable URL param2) throws SQLException

Specified by:
  `setURL` in interface `CallableStatement`
Throws:
  `SQLException`

### setNull

public void setNull(String param1, int param2) throws SQLException

Specified by:
  `setNull` in interface `CallableStatement`
Throws:
  `SQLException`

### setBoolean

public void setBoolean(String param1, boolean param2) throws SQLException

Specified by:
  `setBoolean` in interface `CallableStatement`
Throws:
  `SQLException`

### setByte

public void setByte(String param1, byte param2) throws SQLException

Specified by:
  `setByte` in interface `CallableStatement`
Throws:
  `SQLException`

### setShort

public void setShort(String param1, short param2) throws SQLException

Specified by:
  `setShort` in interface `CallableStatement`
Throws:
  `SQLException`

### setInt

public void setInt(String param1, int param2) throws SQLException

Specified by:
  `setInt` in interface `CallableStatement`
Throws:
  `SQLException`

### setLong

public void setLong(String param1, long param2) throws SQLException

Specified by:
  `setLong` in interface `CallableStatement`
Throws:
  `SQLException`

### setFloat

public void setFloat(String param1, float param2) throws SQLException

Specified by:
  `setFloat` in interface `CallableStatement`
Throws:
  `SQLException`

### setDouble

public void setDouble(String param1, double param2) throws SQLException

Specified by:
  `setDouble` in interface `CallableStatement`
Throws:
  `SQLException`

### setBigDecimal

public void setBigDecimal(String param1, @Nullable BigDecimal param2) throws SQLException

Specified by:
  `setBigDecimal` in interface `CallableStatement`
Throws:
  `SQLException`

### setString

public void setString(String param1, @Nullable String param2) throws SQLException

Specified by:
  `setString` in interface `CallableStatement`
Throws:
  `SQLException`

### setBytes

public void setBytes(String param1, byte @Nullable [] param2) throws SQLException

Specified by:
  `setBytes` in interface `CallableStatement`
Throws:
  `SQLException`

### setDate

public void setDate(String param1, @Nullable Date param2) throws SQLException

Specified by:
  `setDate` in interface `CallableStatement`
Throws:
  `SQLException`

### setTime

public void setTime(String param1, @Nullable Time param2) throws SQLException

Specified by:
  `setTime` in interface `CallableStatement`
Throws:
  `SQLException`

### setTimestamp

public void setTimestamp(String param1, @Nullable Timestamp param2) throws SQLException

Specified by:
  `setTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### setAsciiStream

public void setAsciiStream(String param1, @Nullable InputStream param2, int param3) throws SQLException

Specified by:
  `setAsciiStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setBinaryStream

public void setBinaryStream(String param1, @Nullable InputStream param2, int param3) throws SQLException

Specified by:
  `setBinaryStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setObject

public void setObject(String param1, @Nullable Object param2, int param3, int param4) throws SQLException

Specified by:
  `setObject` in interface `CallableStatement`
Throws:
  `SQLException`

### setObject

public void setObject(String param1, @Nullable Object param2, int param3) throws SQLException

Specified by:
  `setObject` in interface `CallableStatement`
Throws:
  `SQLException`

### setObject

public void setObject(String param1, @Nullable Object param2) throws SQLException

Specified by:
  `setObject` in interface `CallableStatement`
Throws:
  `SQLException`

### setCharacterStream

public void setCharacterStream(String param1, @Nullable Reader param2, int param3) throws SQLException

Specified by:
  `setCharacterStream` in interface `CallableStatement`
Throws:
  `SQLException`

### setDate

public void setDate(String param1, @Nullable Date param2, @Nullable Calendar param3) throws SQLException

Specified by:
  `setDate` in interface `CallableStatement`
Throws:
  `SQLException`

### setTime

public void setTime(String param1, @Nullable Time param2, @Nullable Calendar param3) throws SQLException

Specified by:
  `setTime` in interface `CallableStatement`
Throws:
  `SQLException`

### setTimestamp

public void setTimestamp(String param1, @Nullable Timestamp param2, @Nullable Calendar param3) throws SQLException

Specified by:
  `setTimestamp` in interface `CallableStatement`
Throws:
  `SQLException`

### setNull

public void setNull(String param1, int param2, String param3) throws SQLException

Specified by:
  `setNull` in interface `CallableStatement`
Throws:
  `SQLException`

### registerOutParameter

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

Specified by:
  `registerOutParameter` in interface `CallableStatement`
Throws:
  `SQLException`

### getGeneratedKeys

public ResultSet getGeneratedKeys() throws SQLException

Specified by:
  `getGeneratedKeys` in interface `Statement`
Overrides:
  `getGeneratedKeys` in class `FBStatement`
Throws:
  `SQLException`

### assertHasData

protected ResultSet assertHasData(@Nullable 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
Returns:
  non-`null` result set (same object as `rs`)
Throws:
  `SQLException` - when the result set has no data.

### getAndAssertSingletonResultSet

protected ResultSet getAndAssertSingletonResultSet() throws SQLException
Returns the result set for the singleton row of the callable statement and asserts it has data. If this is a selectable procedure, or there is no singleton row, it will return the normal result set.

This should fix the problem described in JDBC-350 in most circumstances.

Returns:
  Either the singleton result set, or the current result set as described above
Throws:
  `SQLException` - For database access errors

### setBigDecimal

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

Specified by:
  `setBigDecimal` in interface `PreparedStatement`
Overrides:
  `setBigDecimal` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

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

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Overrides:
  `setBinaryStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

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

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Overrides:
  `setBinaryStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBinaryStream

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

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Overrides:
  `setBinaryStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBlob

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

Specified by:
  `setBlob` in interface `PreparedStatement`
Overrides:
  `setBlob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(int parameterIndex, @Nullable InputStream inputStream, long length) throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Overrides:
  `setBlob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBlob

public void setBlob(int parameterIndex, @Nullable InputStream inputStream) throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Overrides:
  `setBlob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBoolean

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

Specified by:
  `setBoolean` in interface `PreparedStatement`
Overrides:
  `setBoolean` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setByte

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

Specified by:
  `setByte` in interface `PreparedStatement`
Overrides:
  `setByte` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setBytes

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

Specified by:
  `setBytes` in interface `PreparedStatement`
Overrides:
  `setBytes` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setCharacterStream

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

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Overrides:
  `setCharacterStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setCharacterStream

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

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Overrides:
  `setCharacterStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setCharacterStream

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

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Overrides:
  `setCharacterStream` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setClob

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

Specified by:
  `setClob` in interface `PreparedStatement`
Overrides:
  `setClob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setClob

public void setClob(int parameterIndex, @Nullable Reader reader, long length) throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Overrides:
  `setClob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setClob

public void setClob(int parameterIndex, @Nullable Reader reader) throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Overrides:
  `setClob` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setDate

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

Specified by:
  `setDate` in interface `PreparedStatement`
Overrides:
  `setDate` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setDate

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

Specified by:
  `setDate` in interface `PreparedStatement`
Overrides:
  `setDate` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setDouble

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

Specified by:
  `setDouble` in interface `PreparedStatement`
Overrides:
  `setDouble` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setFloat

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

Specified by:
  `setFloat` in interface `PreparedStatement`
Overrides:
  `setFloat` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setInt

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

Specified by:
  `setInt` in interface `PreparedStatement`
Overrides:
  `setInt` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setLong

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

Specified by:
  `setLong` in interface `PreparedStatement`
Overrides:
  `setLong` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setNull

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

Specified by:
  `setNull` in interface `PreparedStatement`
Overrides:
  `setNull` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setNull

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

Specified by:
  `setNull` in interface `PreparedStatement`
Overrides:
  `setNull` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setObject

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

Implementation note: ignores `scaleOrLength` and `targetSqlType` and works as `FBPreparedStatement.setObject(int, Object)`, `scaleOrLength` is not ignored if `x` is a `Reader` or `InputStream`.

Implementation note: ignores `scaleOrLength` and `targetSqlType` and works as `setObject(int, Object)`, `scaleOrLength` is not ignored if `x` is a `Reader` or `InputStream`.

Specified by:
  `setObject` in interface `PreparedStatement`
Overrides:
  `setObject` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setObject

public void setObject(int parameterIndex, @Nullable Object x, int targetSqlType) throws SQLException
Description copied from class: `FBPreparedStatement`

Implementation note: ignores `targetSqlType` and works as `FBPreparedStatement.setObject(int, Object)`.

Specified by:
  `setObject` in interface `PreparedStatement`
Overrides:
  `setObject` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setObject

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

Specified by:
  `setObject` in interface `PreparedStatement`
Overrides:
  `setObject` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setShort

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

Specified by:
  `setShort` in interface `PreparedStatement`
Overrides:
  `setShort` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setString

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

Specified by:
  `setString` in interface `PreparedStatement`
Overrides:
  `setString` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setTime

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

Specified by:
  `setTime` in interface `PreparedStatement`
Overrides:
  `setTime` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setTime

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

Specified by:
  `setTime` in interface `PreparedStatement`
Overrides:
  `setTime` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setTimestamp

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

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Overrides:
  `setTimestamp` in class `FBPreparedStatement`
Throws:
  `SQLException`

### setTimestamp

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

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Overrides:
  `setTimestamp` in class `FBPreparedStatement`
Throws:
  `SQLException`

### getNClob

public @Nullable NClob getNClob(int parameterIndex) throws SQLException

Implementation note: This method behaves exactly the same as `getClob(int)`.

Specified by:
  `getNClob` in interface `CallableStatement`
Throws:
  `SQLException`

### getNClob

public @Nullable NClob getNClob(String parameterName) throws SQLException

Implementation note: This method behaves exactly the same as `getClob(String)`.

Specified by:
  `getNClob` in interface `CallableStatement`
Throws:
  `SQLException`

### getRowId

public @Nullable RowId getRowId(int parameterIndex) throws SQLException

Specified by:
  `getRowId` in interface `CallableStatement`
Throws:
  `SQLException`

### getRowId

public @Nullable RowId getRowId(String parameterName) throws SQLException

Specified by:
  `getRowId` in interface `CallableStatement`
Throws:
  `SQLException`

### getSQLXML

public @Nullable SQLXML getSQLXML(int parameterIndex) throws SQLException

Specified by:
  `getSQLXML` in interface `CallableStatement`
Throws:
  `SQLException`

### getSQLXML

public @Nullable SQLXML getSQLXML(String parameterName) throws SQLException

Specified by:
  `getSQLXML` in interface `CallableStatement`
Throws:
  `SQLException`

### setNClob

public void setNClob(String parameterName, @Nullable NClob value) throws SQLException

Implementation note: This method behaves exactly the same as `setClob(String, Clob)`.

Specified by:
  `setNClob` in interface `CallableStatement`
Throws:
  `SQLException`

### setRowId

public void setRowId(String parameterName, @Nullable RowId x) throws SQLException

Specified by:
  `setRowId` in interface `CallableStatement`
Throws:
  `SQLException`

### setSQLXML

public void setSQLXML(String parameterName, @Nullable SQLXML xmlObject) throws SQLException

Specified by:
  `setSQLXML` in interface `CallableStatement`
Throws:
  `SQLException`