2024年4月11日发(作者:)

在Oracle中,存储过程可以有IN、OUT或IN OUT参数。OUT

参数用于向存储过程提供输出值,这些值可以在存储过程执行后被

检索。

以下是如何使用CallableStatement在Java中调用Oracle存

储过程并处理OUT参数的示例:

假设我们有一个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 .*;

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 =

nection(url, user, password);

CallableStatement cstmt =

eCall("{call get_employee_count(?)}");

erOutParameter(1,

R); // 注册OUT参数

e(); // 执行存储过程

int empCount = (1); // 获取OUT

参数的值

n("Employee count: " +

empCount);

();

();

} catch (SQLException ex) {

tackTrace();

}

}

}

```

请注意,我们使用`registerOutParameter`方法来注册OUT参

数,并使用`getInt`方法来检索OUT参数的值。