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;
私は私が作ったというのPreparedStatement executeQuery
を呼び出し、それがうまくデータベースにすべてを挿入します。しかし、私はIDを取得する方法を把握していないようです。返されたResultSetオブジェクトは私のためには機能しません。
if(resultSet.next()) ...
読み取り厄介なのSQLExceptionは、利回り呼び出す:
PLSQL文でフェッチを実行できません:私は
lastId
ことを取得するにはどうすればよい
次の?明らかに私はそれを間違っている。
いつでも 'SELECT FOO_ID_SEQ.CURRVAL FROM DUAL'をクエリできます。 – Phil
関数またはストアドプロシージャをポストする - あなたがINOUTパラメータとして 'lastid'を設定したかどうかを知る必要があります。 –
別のクエリを実行する必要がある場合は、挿入したばかりの要素のIDであるとは限りません。そこに忍び込んでいる別のクエリが存在する可能性があります。 – geowa4