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

标签 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;

最佳答案

使用这个:

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

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

请注意,我认为您已将数据库连接作为“连接”

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

关于java - 在 Oracle PL/SQL 中调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40858399/

相关文章:

java - ParseRole 和 ParseRelation 之间的区别

java - java中简单的字符串匹配

sql - 如何使用 postgis 查询获取分组几何图形的 bbox?

java - 具有 oracle 数据库重置连接的容器化 spring boot 应用程序

java - Android Java - 在欧洲和其他国家/地区自动用逗号而不是句号表示 float

mysql - 更新一个日期字段小于另一日期字段的字段

java - Apache Phoenix : Values in UPSERT must evaluate to a constant. java.sql.SQLException:错误 204 (22008)

oracle - 如何在Grails中左右联接标准查询

sql - sysdate 的 to_date 函数存在问题

java - 将 netty 与 jedis 一起使用时出错