De JDBC 4.1-specificatie, sectie 13.6 Automatisch gegenereerde waarden ophalen zegt:
Het is door de implementatie gedefinieerd of
getGeneratedKeys
retourneert gegenereerde waarden na het aanroepen van deexecuteBatch
methode.
U moet dus controleren of uw stuurprogramma dit daadwerkelijk ondersteunt voor batch-updates. Zoals aangegeven in het antwoord van Philip O., wordt het ophalen van gegenereerde sleutels niet ondersteund met batchupdates zoals gedocumenteerd in Oracle 12 JDBC Standards Support:
U kunt automatisch gegenereerde sleutels niet combineren met batchupdate.
In ieder geval, als het wordt ondersteund door uw chauffeur, moet uw verklaring voorbereiden worden gewijzigd in de onderstaande code om de chauffeur te instrueren om gegenereerde sleutels op te halen:
ps = con.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS);
Opmerking:u moet mogelijk een van de andere voorbereidingsmethoden voor gegenereerde sleutels gebruiken (prepareStatement(sql, columnIndexes)
of prepareStatement(sql, columnNames)
) aangezien Oracle de ROW_ID
. teruggeeft met de methode in mijn voorbeeld.