JDBC 4.1-specifikationen, afsnit 13.6 Hentning af automatisk genererede værdier siger:
Det er implementeringsdefineret om getGeneratedKeys
vil returnere genererede værdier efter påkaldelse af executeBatch
metode.
Så du bliver nødt til at kontrollere, om din driver faktisk understøtter den til batch-opdateringer. Som angivet i svaret af Philip O., understøttes hentning af genererede nøgler ikke med batchopdateringer som dokumenteret i Oracle 12 JDBC Standards Support:
Du kan ikke kombinere autogenererede nøgler med batchopdatering.
Under alle omstændigheder, hvis det understøttes af din driver, skal din erklæringsforberedelse ændres til koden nedenfor for at instruere chaufføren om at hente genererede nøgler:
ps = con.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS);
Bemærk:Du skal muligvis bruge en af de andre genererede nøgleforberedelsesmetoder (prepareStatement(sql, columnIndexes)
eller prepareStatement(sql, columnNames)
), da Oracle returnerer ROW_ID
med metoden i mit eksempel.