Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.sql
Interface CallableStatement

All Superinterfaces:
  PreparedStatement, Statement

public interface CallableStatement
extends PreparedStatement

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."

See Also:
  `Connection.prepareCall(java.lang.String)`, `ResultSet`

Method Summary
`Array` | `getArray(int i)` 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 i)` 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 i)` Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.
`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.
`Object` | `getObject(int parameterIndex)` Gets the value of a parameter as an `Object` in the Java programming language.
`Object` | `getObject(int i, 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 i)` Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.
`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.
`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` | `registerOutParameter(int paramIndex, int sqlType, String typeName)` Registers the designated output parameter.
`boolean` | `wasNull()` Indicates whether or not the last OUT parameter read had the value of SQL `NULL`.

Methods inherited from interface java.sql.PreparedStatement
`addBatch, clearParameters, execute, executeQuery, executeUpdate, getMetaData, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNull, setNull, setObject, setObject, setObject, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream`

Methods inherited from interface java.sql.Statement
`addBatch, cancel, clearBatch, clearWarnings, close, execute, executeBatch, executeQuery, executeUpdate, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetType, getUpdateCount, getWarnings, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout`

Method Detail

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

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

  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.
  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.

  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.

  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.
  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 i,
                            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.

  Parameters:
    `i` - 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 i)
               throws SQLException

  Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.
  Parameters:
    `i` - 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 i)
                 throws SQLException

  Gets the value of a JDBC `BLOB` parameter as a `Blob` object in the Java programming language.
  Parameters:
    `i` - 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 i)
                 throws SQLException

  Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.
  Parameters:
    `i` - 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 i)
                   throws SQLException

  Gets the value of a JDBC `ARRAY` parameter as an `Array` object in the Java programming language.
  Parameters:
    `i` - 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.
  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.
  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.
  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

### registerOutParameter

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

  Registers the designated output parameter. This version of the method `registerOutParameter` should be used for a user-named or REF output parameter. Examples of user-named types include: STRUCT, DISTINCT, JAVA_OBJECT, and named array types. Before executing a stored procedure call, you must explicitly call `registerOutParameter` to register the type from `java.sql.Types` for each OUT parameter. For a user-named parameter the fully-qualified SQL type name of the parameter should also be given, while a REF parameter requires that the fully-qualified type name of the referenced type be given. A JDBC driver that does not need the type code and type name information may ignore it. To be portable, however, applications should always provide these values for user-named and REF parameters. Although it is intended for user-named and REF parameters, this method may be used to register a parameter of any JDBC type. If the parameter does not have a user-named or REF type, the typeName parameter is ignored.

  Note: When reading the value of an out parameter, you must use the `getXXX` method whose Java type XXX corresponds to the parameter's registered SQL type.

  Parameters:
    `parameterIndex` - the first parameter is 1, the second is 2,...
    `sqlType` - a value from `Types`
    `typeName` - the fully-qualified name of an SQL structured type
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    1.2
  See Also:
    `Types`, What Is in the JDBC 2.0 API

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.