java - 使用 JDBC 获取 Oracle 11g 的最后插入 ID

标签 java oracle jdbc oracle11g

我是使用 Oracle 的新手,所以我将放弃之前在 this SO question 中已经回答的问题.我似乎无法让它工作。这是我正在使用的声明:

declare
  lastId number;
begin
INSERT INTO "DB_OWNER"."FOO" 
  (ID, DEPARTMENT, BUSINESS)
  VALUES (FOO_ID_SEQ.NEXTVAL, 'Database Management', 'Oracle')
  RETURNING ID INTO lastId;
end;

当我调用 executeQuery 我创建的 PreparedStatement 时,它会将所有内容插入到数据库中。但是,我似乎无法弄清楚如何检索 ID。返回的 ResultSet 对象对我不起作用。呼唤

if(resultSet.next()) ...

产生一个讨厌的 SQLException,内容如下:

Cannot perform fetch on a PLSQL statement: next

我如何获得 lastId?显然我做错了。

最佳答案

使它成为一个将它返回给你的函数(而不是一个过程)。或者,有一个带有 OUT 参数的过程。

关于java - 使用 JDBC 获取 Oracle 11g 的最后插入 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952256/

相关文章:

java - 如何在不使用Maven的情况下在JavaFx项目中部署log4j version2

java - 这两个运算符 "|="和 "|"是什么意思

java - 在 Spring Boot 中使用 spring.application.json 作为 application.properties 文件

java - 限制谁可以使用基于 j2ee 表单的身份验证按角色登录

oracle - NHibernate - 在配置中找不到(oracle)方言

java - 如何使用Java在Oracle DB中插入汉字

sql - 甲骨文 : How to update multiple columns from different table?

java - 从 oracle 执行方法中检索返回值

java - executeUpdate 异常

java - MSSQL Server 2005-JDBC连接