Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mendapatkan kunci yang dihasilkan dari sisipan batch JDBC di Oracle?

Spesifikasi JDBC 4.1, bagian 13.6 Mengambil Nilai yang Dihasilkan Otomatis mengatakan:

Ini adalah implementasi yang ditentukan, apakah getGeneratedKeys akan mengembalikan nilai yang dihasilkan setelah menjalankan executeBatch metode.

Jadi, Anda perlu memeriksa apakah driver Anda benar-benar mendukungnya untuk pembaruan batch. Seperti yang ditunjukkan dalam jawaban oleh Philip O., pengambilan kunci yang dihasilkan tidak didukung dengan pembaruan batch seperti yang didokumentasikan dalam Dukungan Standar Oracle 12 JDBC:

Anda tidak dapat menggabungkan kunci yang dibuat secara otomatis dengan pembaruan batch.

Bagaimanapun jika itu didukung oleh driver Anda, maka pernyataan Anda, siapkan harus diubah ke kode di bawah ini untuk menginstruksikan driver untuk mengambil kunci yang dihasilkan:

ps = con.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS);

Catatan:Anda mungkin perlu menggunakan salah satu metode persiapan kunci yang dihasilkan lainnya (prepareStatement(sql, columnIndexes) atau prepareStatement(sql, columnNames) ) karena Oracle akan mengembalikan ROW_ID dengan metode dalam contoh saya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gabung dalam vs Dimana

  2. Cara mengulangi rentang tanggal di PL/SQL

  3. Masukkan ke dari CTE

  4. Bagaimana saya bisa melakukan penyisipan batch ke database Oracle menggunakan Python?

  5. Oracle setara dengan ROWLOCK, UPDLOCK, petunjuk permintaan READPAST