我刚刚使用Oracle,因此我要脱离之前已在this SO question中回答过的问题。我似乎无法得到它的工作。下面是我使用的语句:使用JDBC获取Oracle 11g的最后一个插入ID
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,上面写着:
无法执行取一个PLSQL声明:下一
如何获取lastId
?很明显,我做错了。
您可以随时查询'SELECT FOO_ID_SEQ.CURRVAL FROM DUAL'。 – Phil
发布函数或存储过程 - 需要知道是否将'lastid'设置为INOUT参数。 –
如果我必须执行另一个查询,我不能保证它是我刚刚插入的元素的id。那里可能会有另一个查询。 – geowa4