java.sql.CallableStatement is an interface for executing stored procedures.
Description
The JDBC API provides SQL escape syntax for stored procedures. This allows stored procedures to be called in a standard way for all relational database management systems (RDBMSs). One form of the escape syntax contains a result parameter, while the other does not. The result parameter must be registered as an OUT parameter when it is used. Other parameters can be used for input, output, or both. The parameters are referenced in sequence by number. The number of the first parameter is 1.
{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
{call <procedure-name>[(<arg1>,<arg2>, ...)]}
The values of IN parameters are set by using set methods inherited from PreparedStatement. The type of all OUT parameters must be registered before the stored procedure is executed. The parameter values are retrieved by using get methods provided by this class.
A CallableStatement object can return one or more ResultSet objects. You can use methods inherited from Statement to process multiple ResultSet objects.
For maximum portability, a call's ResultSet objects and update counts need to be processed before the output parameter values are obtained.
Methods
| Method | Return type | Supported in Oracle mode | Supported in MySQL mode |
|---|---|---|---|
| registerOutParameter(int parameterIndex, int sqlType ) | void | Yes | Yes |
| registerOutParameter(int parameterIndex, int sqlType, int scale) | void | Yes | Yes |
| wasNull() | Boolean | Yes | Yes |
| getString(int parameterIndex) | String | Yes | Yes |
| getString(String parameterName) | String | Yes | Yes |
| getBoolean(int parameterIndex) | Boolean | Yes | Yes |
| getBoolean(String parameterName) | Boolean | Yes | Yes |
| getByte(int parameterName) | byte | Yes | Yes |
| getByte(String parameterName) | byte | Yes | Yes |
| getShort(int parameterIndex) | short | Yes | Yes |
| getShort(String parameterName) | short | Yes | Yes |
| getInt(int parameterIndex) | int | Yes | Yes |
| getInt(String parameterName) | int | Yes | Yes |
| getLong(int parameterIndex) | long | Yes | Yes |
| getLong(String parameterName) | long | Yes | Yes |
| getFloat(int parameterIndex) | float | Yes | Yes |
| getFloat(String parameterName) | float | Yes | Yes |
| getDouble(int parameterIndex) | double | Yes | Yes |
| getDouble(String parameterName) | double | Yes | Yes |
| getBigDecimal(int parameterIndex) | BigDecimal | Yes | Yes |
| getBigDecimal(String parameterName) | BigDecimal | Yes | Yes |
| getBytes(int parameterIndex) | byte[] | Yes | Yes |
| getBytes(String parameterName) | byte[] | Yes | Yes |
| getDate(int parameterIndex) | Date | Yes | Yes |
| getDate(String parameterName) | Date | Yes | Yes |
| getTime(int parameterIndex) | Time | Yes | Yes |
| getTime(String parameterName) | Time | Yes | Yes |
| getTimestamp(int parameterIndex) | Timestamp | Yes | Yes |
| getTimestamp(String parameterName) | Timestamp | Yes | Yes |
| getObject(int parameterIndex) | Object | Yes | Yes |
| getObject(String parameterName) | Object | Yes | Yes |
| getRef(int parameterIndex) | Ref | Yes | Yes |
| getRef(String parameterName) | Ref | Yes | Yes |
| getBlob(int parameterIndex) | Blob | Yes | Yes |
| getBlob(String parameterName) | Blob | Yes | Yes |
| getClob(int parameterIndex) | Clob | Yes | Yes |
| getClob(String parameterName) | Clob | Yes | Yes |
| getArray(int parameterIndex) | Array | Yes | Yes |
| getArray(String parameterName) | Array | Yes | Yes |
| getRowId(int parameterIndex) | RowId | No | No |
| getRowId(String parameterName) | RowId | No | No |
| setRowId(String parameterName,RowId x) | void | No | No |
| setNString(String parameterName,String value) | void | Yes | Yes |
| setNString(int parameterIndex) | void | Yes | Yes |
| setNCharacterStream(String parameterName,Reader reader, longlength) | void | Yes | Yes |
| setNCharacterStream(String parameterName,Reader value) | void | Yes | Yes |
| setNClob(String parameterName,NClob value) | void | Yes | Yes |
| setNClob(String parameterName,Reader reader, longlength) | void | Yes | Yes |
| setNClob(String parameterName,Reader reader) | void | Yes | Yes |
| setClob(String parameterName,Reader reader, longlength) | void | Yes | Yes |
| setClob(String parameterName,Reader reader, longlength) | void | Yes | Yes |
| setClob(String parameterName,Clob x) | void | Yes | Yes |
| setBlob(String parameterName,InputStream inputStream, long length) | void | Yes | Yes |
| setBlob(String parameterName,Blob x) | void | Yes | Yes |
| setBlob(String parameterName,InputStream inputStream) | void | Yes | Yes |
| getNClob(int parameterIndex) | NClob | Yes | Yes |
| getNClob(String parameterName) | NClob | Yes | Yes |
| setSQLXML(String parameterName,SQLXML xmlObject) | void | Yes | Yes |
| getSQLXML(int parameterIndex) | SQLXML | No | No |
| getSQLXML(String parameterName) | SQLXML | No | No |
| getURL(int parameterIndex) | URL | Yes | Yes |
| getURL(String parameterName) | URL | Yes | Yes |
| getNString(int parameterIndex) | String | Yes | Yes |
| getNString(String parameterName) | String | Yes | Yes |
| getCharacterStream(int parameterIndex) | Reader | Yes | Yes |
| getCharacterStream(String parameterName) | Reader | Yes | Yes |
| getNCharacterStream(int parameterIndex) | Reader | Yes | Yes |
| getNCharacterStream(String parameterName) | Reader | Yes | Yes |