Secara umum, memilih MAX(log_id) tidak akan memberi Anda nilai yang sama dengan logid_seq.nextval asalkan. Dengan asumsi bahwa ini adalah sistem multi-pengguna, beberapa pengguna lain dapat menyisipkan baris lain dengan log_id yang lebih besar nilai dari baris yang baru saja Anda sisipkan sebelum kueri Anda dieksekusi.
Dengan asumsi bahwa keduanya INSERT pernyataan dijalankan dalam sesi yang sama, opsi paling sederhana mungkin menggunakan logid_seq.currval di INSERT kedua penyataan. currval akan mengembalikan nilai terakhir dari urutan yang dikembalikan ke sesi saat ini sehingga akan selalu mengembalikan nilai yang sama yang dihasilkan oleh nextval panggil pernyataan pertama.
INSERT INTO tableB (LOG_ID, RESPONSE_CODE, RESPONSE_MSG)
VALUES( logid_seq.currval, ?, ? )
Atau, Anda dapat menggunakan RETURNING klausa dalam pernyataan pertama Anda untuk mengambil nilai urutan ke dalam variabel lokal dan menggunakannya dalam INSERT kedua penyataan. Tapi itu mungkin lebih berhasil daripada sekadar menggunakan currval .