我刚开始使用Oracle,所以我正在参考之前在这个SO问题中已经回答的内容。但是我似乎无法让它工作。这是我正在使用的语句:
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;
当我调用已经创建的PreparedStatement的executeQuery方法时,它可以将所有内容成功插入到数据库中。但是,我无法弄清如何检索ID。返回的ResultSet对象对我没有用。
if(resultSet.next()) ...
产生了一个难以处理的 SQLException,其内容为:
无法在 PLSQL 语句中执行获取操作:next
如何获取那个 lastId?显然我做错了什么。
SELECT FOO_ID_SEQ.CURRVAL FROM DUAL
。 - Phillastid
设置为 INOUT 参数。 - OMG PoniesCURRVAL
是会话安全的,但RETURNING
子句将允许你在一个语句中完成两件事情。 - OMG Ponies