在Oracle中,存储过程可以有IN、OUT或IN OUT参数。OUT参数用于向存储过程提供输出值,这些值可以在存储过程执行后被检索。
    以下是如何使用CallableStatement在Java中调用Oracle存储过程并处理OUT参数的示例:
    假设我们有一个Oracle存储过程,如下所示:
oracle手动调用存储过程   
    ```sql
    CREATE OR REPLACE PROCEDURE get_employee_count(
        p_emp_count OUT NUMBER
    ) AS
    BEGIN
        SELECT COUNT(*) INTO p_emp_count FROM employees;
    END get_employee_count;
    /
    ```
    现在,我们将使用Java的CallableStatement来调用此存储过程并检索输出参数的值。
   
    ```java
    import java.sql.*;
    public class OracleCallableStatementExample {
        public static void main(String[] args) {
            String url = "jdbc:oracle:thin:@localhost:1521:xe";
            String user = "username";
            String password = "password";
            try {
                Connection conn = Connection(url, user, password);
                CallableStatement cstmt = conn.prepareCall("{call get_employee_count(?)}");
                isterOutParameter(1, Types.INTEGER); // 注册OUT参数
                ute(); // 执行存储过程
                int empCount = Int(1); // 获取OUT参数的值
                System.out.println("Employee count: " + empCount);
                cstmt.close();
                conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
    ```
    请注意,我们使用`registerOutParameter`方法来注册OUT参数,并使用`getInt`方法来检索OUT参数的值。