使用JDBC获取Oracle 11g的最后一个插入ID

geo*_*wa4 5 java oracle jdbc oracle11g

我刚开始使用Oracle,所以我将在之前回答过这个问题.我似乎无法让它工作.这是我正在使用的声明:

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;
Run Code Online (Sandbox Code Playgroud)

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

if(resultSet.next()) ...
Run Code Online (Sandbox Code Playgroud)

产生令人讨厌的SQLException,其内容如下:

无法在PLSQL语句上执行提取:下一步

我怎么做到的lastId?显然我做错了.

小智 2

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