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.2.6
  • What is OceanBase Connector J?
    • JDBC overview
    • Compatibility requirements
  • Instructions
    • Install OceanBase Client
    • Basic operations
      • Import packages
      • Create a database connection
      • Create a Statement object
      • Run queries and retrieve ResultSet objects
      • Process a ResultSet object
      • Close ResultSet and Statement objects
      • Modify a database
      • Commit changes
      • Close a database connection
      • Example
    • Handle SQL exceptions
    • Use CallableStatements to call stored procedures
    • Java data streams
      • Overview of Java data streams
      • LONG and LONG RAW data types
      • LOB data types
    • Use LOBs
      • Overview of LOB data types
      • LOB data API
      • LOB locator API
      • CHAR, VARCHAR, and RAW data types
    • Data sources and URL
      • Data source overview
      • Data source characteristics and properties
      • Create and connect to a data source instance
      • Database URL
    • Result set
      • Limits and degradation rules
      • Fetch size
      • Refetch rows
      • Cursor result sets
    • Statement caching
      • Statement caching overview
      • Use statement cache
      • Reuse statement objects
    • Failover and load balancing modes
    • Batch processing
    • JDBC security features
    • SQL NetworkCostInfo
    • Troubleshooting
    • Common APIs
      • 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
    • Reference
      • Supported SQL and PL data types
  • Features specific to the Oracle mode
    • Binary Protocol (Prepared Statements)
      • COM_STMT_PREPARE_EXECUTE
      • COM_STMT_SEND_PIECE_DATA
    • Call PL stored procedures
    • Result set performance
    • Use ARRAY and STRUCT classes
    • Distributed transactions
      • Overview of distributed transactions
      • XA components
      • Distributed transaction examples
    • Error messages in Oracle mode
    • Data types supported in Oracle mode
  • Release Notes
    • V2.2
      • OceanBase Connector/J V2.2.11
      • OceanBase Connector/J V2.2.10
      • 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.2.6

Use CallableStatements to call stored procedures

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

You can call the CallableStatement operation of the JDBC API to call stored procedures.

CallableStatement enables you to call statements to execute stored procedures by using the executeUpdate(), executeQuery(), or execute() method. execute() is the most flexible method, because you do not need to know in advance whether the stored procedures will return result sets.

In the following example, the stored procedure returns an inOutParam value that is incremented by 1, and uses inputParam as ResultSet to enter a string.

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.

    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 is created), JDBC requires that the values of the output parameter be specified by using the registerOutputParameter() method in the CallableStatement operation. 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. However, CallableStatement also allows you to set parameters by name. Example:

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

    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

Handle SQL exceptions
Last

Next topic

Overview of Java data streams
Next