sql >> Databáze >  >> RDS >> Oracle

Jak získat vygenerované klíče z dávkového vložení JDBC v Oracle?

Specifikace JDBC 4.1, sekce 13.6 Načítání automaticky generovaných hodnot říká:

Je definováno implementací, zda getGeneratedKeys po vyvolání executeBatch vrátí vygenerované hodnoty metoda.

Budete tedy muset zkontrolovat, zda jej váš ovladač skutečně podporuje pro dávkové aktualizace. Jak je uvedeno v odpovědi Philipa O., načítání vygenerovaných klíčů není podporováno dávkovými aktualizacemi, jak je zdokumentováno v Oracle 12 JDBC Standards Support:

Automaticky generované klíče nelze kombinovat s dávkovou aktualizací.

V každém případě, je-li to podporováno vaším ovladačem, váš příkaz by měl být změněn na kód níže, aby dal řidiči pokyn k získání vygenerovaných klíčů:

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

Poznámka:Možná budete muset použít jednu z dalších vygenerovaných metod přípravy klíčů (prepareStatement(sql, columnIndexes) nebo prepareStatement(sql, columnNames) ), protože Oracle vrátí ROW_ID s metodou v mém příkladu.



  1. Jak porovnat dvě pole a vybrat pouze neshodné prvky v postgresu

  2. Odečtěte mikrosekundy od hodnoty Datetime v MariaDB

  3. Jak vypočítat rozdíl mezi dvěma daty v T-SQL

  4. Jak vytvořím jedinečné omezení, které také povoluje hodnoty null?