OceanBase
English日本語简体中文
Docs Home
Products
Integrations
Release Notes

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service
OceanBase DatabaseOceanBase Cloud ToolsConnectors and MiddlewareLifecycle Support Policy

OceanBase Connector/J

V2.4.14
  • What is OceanBase Connector J?
    • Overview of OceanBase Connector/J
    • Compatibility requirements
    • Limitations
  • Install Driver
    • Install and load OceanBase Connector/J
  • Instructions
    • Quick start
      • Import packages
      • Establish a database connection
      • Create a Statement object
      • Run queries and retrieve ResultSet objects
      • Process ResultSet objects
      • Close ResultSet and Statement objects
      • Manage tables and data
      • Commit changes
      • Close a database connection
      • Examples
    • Data sources and URL
      • Data source overview
      • Database URL
    • Java data streams
      • Overview of Java data streams
      • LONG and LONG RAW data types
      • Use LOBs
        • Overview of LOB data types
        • LOB data interface
        • LOB locator interface
      • CHAR, VARCHAR, and RAW data types
    • Statement caching
      • Overview of statement caching
      • Use statement caching
      • Reuse statement objects
    • Call a stored procedure
    • Handle SQL exceptions
    • Result set
      • Overview of result sets
      • Limitations
      • FetchSize
      • refreshRow
      • useCursorFetch
    • Batch processing
    • Failover and Load-Balancing
      • Failover and load balancing modes
      • LoadBalance strategies
      • Load balancing strategy configuration methods
    • Rich client
    • Logging
    • Network overheads
    • Show Trace
    • Security features
    • Troubleshooting
  • Reference
    • Features specific to the Oracle mode
      • Binary Protocol (Prepared Statements)
        • COM_STMT_PREPARE_EXECUTE
        • COM_STMT_SEND_PIECE_DATA
      • Call PL stored procedures
      • Scrollability of a result set
      • Use ARRAY and STRUCT classes
      • Distributed transactions
        • Overview
        • XA components
        • Distributed transaction examples
      • Obtain remarks
      • Data types supported in Oracle mode
      • Error messages in Oracle mode
    • Supported SQL and PL data types
    • Common APIs
      • Overview
      • java.sql.Connection
      • java.sql.CallableStatement
      • java.sql.DatabaseMetaData
      • java.sql.Driver
      • java.sql.PreparedStatement
      • java.sql.ParameterMetaData
      • java.sql.ResultSet
      • java.sql.ResultSetMetaData
      • java.sql.Statement
      • javax.sql.ConnectionPoolDataSource
      • javax.naming.Context
      • javax.sql.PooledConnection
      • com.oceanbase.jdbc.ObPrepareStatement
  • Release Notes
    • V2.4
      • OceanBase Connector/J V2.4.14
      • OceanBase Connector/J V2.4.13
      • OceanBase Connector/J V2.4.12
      • OceanBase Connector/J V2.4.11
      • OceanBase Connector/J V2.4.8
      • OceanBase Connector/J V2.4.5
      • OceanBase Connector/J V2.4.4
      • OceanBase Connector/J V2.4.3
      • OceanBase Connector/J V2.4.2
      • OceanBase Connector/J V2.4.1
      • OceanBase Connector/J V2.4.0
    • V2.2
      • OceanBase Connector/J V2.2.11
      • OceanBase Connector/J V2.2.10
      • OceanBase Connector/J V2.2.7
      • OceanBase Connector/J V2.2.6
      • OceanBase Connector/J V2.2.3
      • OceanBase Connector/J V2.2.0

Download PDF

Document Feedback
  1. Documentation Center
  2. OceanBase Connector/J
  3. V2.4.14

Call a stored procedure

Last Updated:2026-09-04 08:24:26

You can use the CallableStatement interface of OceanBase Connector/J to call stored procedures.

CallableStatement provides the following methods for you to call stored procedures: executeUpdate(), executeQuery(), and execute(). execute() is the most flexible method, because it does not require advance information on whether the stored procedures will return result sets.

In the following example, the stored procedure obSp returns the inOutParam value incremented by 1, and the string passed in by using inputParam as ResultSet.

CREATE PROCEDURE obSp(IN inputParam VARCHAR(100),
                        INOUT inOutParam INT)
BEGIN
    DECLARE n INT;
    SET n = inOutParam + 1;
    SET inOutParam = n;
    SELECT inputParam;
    SELECT CONCAT('zhang', inputParam);
END

To call the obSp stored procedure in the example, perform the following steps:

  1. Prepare a callable statement by using the Connection.prepareCall() method.

    Here is an example:

    import java.sql.CallableStatement;
    ...
    
        CallableStatement cSt = conn.prepareCall("{call obSp(?, ?)}");
    
        cSt.setString(1, "asdfg");
    
  2. Register output parameters, if any.

    To retrieve the values of the output parameters (the OUT or INOUT parameters specified when the stored procedure was created), OceanBase Connector/J requires that the values of the output parameters be specified by using the registerOutputParameter() method in the CallableStatement interface. Here is an example:

    import java.sql.Types;
    ...
        cSt.registerOutParameter(2, Types.INTEGER);
    
        cSt.registerOutParameter("inOutParam", Types.INTEGER);
    ...
    
  3. Set input parameters, if any.

    Input and input/output parameters are set in the same way as the PreparedStatement object. Here is an example:

         cSt.setString(1, "asdfg");
    
         cSt.setInt(2, 1);
    ...
    
  4. Execute CallableStatement and retrieve any result sets or output parameters.

    Here is an example:

    ...
        boolean obResults = cSt.execute();
    
           while (obResults) {
            ResultSet rs = cSt.getResultSet();
            ...
            obResults = cSt.getMoreResults();
        }
        int outputValue = cSt.getInt(2); 
        outputValue = cSt.getInt("inOutParam"); 
    ...
    

Previous topic

Reuse statement objects
Last

Next topic

Handle SQL exceptions
Next