Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да получа генерирани ключове от JDBC пакетно вмъкване в Oracle?

Спецификацията на JDBC 4.1, раздел 13.6 Извличане на автоматично генерирани стойности казва:

Дефинира се от реализацията дали getGeneratedKeys ще върне генерирани стойности след извикване на executeBatch метод.

Така че ще трябва да проверите дали вашият драйвер действително го поддържа за пакетни актуализации. Както е посочено в отговора на Филип О., извличането на генерирани ключове не се поддържа с пакетни актуализации, както е документирано в Oracle 12 JDBC Standards Support:

Не можете да комбинирате автоматично генерирани ключове с пакетно актуализиране.

Във всеки случай, ако се поддържа от вашия драйвер, вашето изявление за подготовка трябва да бъде променено на кода по-долу, за да инструктира драйвера да извлече генерирани ключове:

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

Забележка:може да се наложи да използвате някой от другите генерирани методи за подготовка на ключове (prepareStatement(sql, columnIndexes) или prepareStatement(sql, columnNames) ), тъй като Oracle ще върне ROW_ID с метода в моя пример.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирам XMLTYPE в VARCHAR в ORACLE?

  2. Пивот в Oracle 11g

  3. Как да получите максималната възможна дата в Oracle?

  4. Оператор за конкатенация на низове в Oracle, Postgres и SQL Server

  5. Разделете IPv4 адреса на 4 числа в Oracle sql