在Oracle PL / SQL中调用存储过程

时间:2016-11-29 05:26:34

标签: java sql oracle plsql oracle11g

我在Oracle 11g中编写了一个带有游标的过程,以便我可以在Java代码中使用它。谁能告诉我如何使用这个程序并从Java代码中调用它?

create or replace
PROCEDURE show_students
(
students_cursor OUT SYS_REFCURSOR
)AS
BEGIN
OPEN students_cursor FOR
SELECT * from students;
END show_students;

1 个答案:

答案 0 :(得分:0)

使用它:

CallableStatement stmt = connection.prepareCall("BEGIN SHOW_STUDENTS(?); END;");
stmt.registerOutParameter(1, OracleTypes.CURSOR); //REF CURSOR
stmt.execute();
rs = ((OracleCallableStatement)stmt).getCursor(1);

我建议在这种情况下使用函数而不是过程。

请注意,我认为您与DB的连接是“连接”

来源: How do I return a sys_refcursor from oracle SP in java?