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 result parameters, while another does not. The result parameters must be registered as OUT parameters when they are 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 value of an IN parameter is set by using the set method inherited from PreparedStatement. All types of OUT parameters must be registered before the stored procedure is executed. The parameter values are retrieved by using the get method provided by the corresponding class.
CallableStatement can return one or more ResultSet objects. You can use methods inherited from Statement to process multiple ResultSet objects.
For maximum portability, the called ResultSet objects and update counts need to be processed before the output parameter values are obtained.
Methods
| Method | Return type | JDBC 4 supported in Oracle mode | JDBC 4 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 |