如何在jdbc中执行oracle程序

Posted

技术标签:

【中文标题】如何在jdbc中执行oracle程序【英文标题】:how to execute oracle procedure in jdbc 【发布时间】:2019-08-18 13:18:11 【问题描述】:

我是 java jdbc 的新手。我尝试在 java 中运行以下 oracle plsql 查询,但我无法获得我不知道如何执行的结果。如何运行以下 sql 代码。如何在 jdbc 中执行以下过程。请不要评判我,我是新人

declare
  o_claim number;
  o_error number;
begin
  bss_ln.bss_claim(o_claim => o_claim,
                   o_error => o_error,
                   i_card => ?,
                   i_phone =>?,
                   i_product=>?);
end;

【问题讨论】:

您需要使用CallableStatement 这些可能有用:docs.oracle.com/javase/tutorial/jdbc 和docs.oracle.com/javase/7/docs/api/java/sql/… 第一个是使用 JDBC 的 Java 线索,第二个是用于 CallableStatement 的 API。我相信快速搜索 Stack Overflow 会显示大量示例 能否请您广泛解释一下。例如,我如何在这个过程中编写 plsql 的变量? 在这种情况下,我无法提供更多帮助,然后为您指明正确的方向,自从我使用 JDBC 以来已经很长时间了,我建议搜索 SO 等或互联网上的教程,因为它们将能够显示最新的语法等。这些来自我经常使用的来源:baeldung.com/java-jdbc 和 mkyong.com/jdbc/… 谢谢先生,我找到了我需要的答案,非常感谢 @MaksimVasilovich 能否请您使用“添加答案”按钮发布您找到的答案,然后接受它以供遇到相同问题的所有人查看和使用,在此先感谢。 【参考方案1】:
ConnectionManager mgr = ConnectionManager.getInstance();
OracleConnection conn = mgr.getConnection(connectionLabel);

CallableStatement cstmt = conn.prepareCall(" call bss_ln.bss_claim(?, ?, ?, ?, ?) ");
// prepare output params
cstmt.registerOutParameter(1, java.sql.Types.NUMBER);
cstmt.registerOutParameter(2, java.sql.Types.NUMBER);

// prepare input params
cstmt.setString(3, "input param");
cstmt.setString(4, "input param");
cstmt.setString(5, "input param");


cstmt.executeUpdate();

// get result
int o_claim = cstmt.getInt(1);
int o_error = cstmt.getInt(2);


// close cursor
cstmt.close();

【讨论】:

谢谢先生,您的回答是正确的。但很遗憾,我不能为您的问题投票,对此感到抱歉【参考方案2】:

你也可以从我的书的代码示例(第 6 章到第 9 章)中获得启发(没有广告,只是分享代码)@http://download.oracle.com/technology/tech/java/jsp/pdf/Code_depot.zip。

【讨论】:

这是一个链接答案。请在您的答案中添加一些相关代码。链接死了,然后你的答案就没有多大用处了。

以上是关于如何在jdbc中执行oracle程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JDBC 从 Oracle 读取数据集?

如何在 java 中使用 jdbc 为 oracle 10g 执行 log miner PL/SQL 查询

如何在 oracle 11 中使用 JDBC 4 驱动程序?

如何使用 pi spark 在 oracle 数据库上执行选择查询?

如何获取 JDBC 中的行数?

如何在winform程序中调用CS-Script 脚本 这个脚本执行操作是简单的增删改查 最好有代码示例 谢谢