sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL-reeks wordt niet verhoogd zoals verwacht met objectconstructors

Oracle-reeksen zijn niet bedoeld voor het produceren van aaneengesloten (ophoging met één) id's in de doeltabel. Dit komt omdat ze zijn ontworpen om erg snel te zijn en multi-threaded toegang mogelijk te maken, wat betekent dat onder de motorkap sequentie-ID's in verschillende transacties in de cache worden opgeslagen.

U kunt het probleem wellicht oplossen door de volgorde te declareren met NOCACHE , maar er is nog steeds geen garantie dat ID's niet worden overgeslagen als om de een of andere reden een transactie wordt teruggedraaid.

Zoals altijd legt Tom Kyte uit dit diepgaand.




  1. Een PostgreSQL-database initialiseren zonder de PostgreSQL-server uit te voeren

  2. Oracle-tabel(len)gegevens naar INSERT-instructies met JAVA

  3. Waarom krijg ik JPEG-fout 42 wanneer deze in een database is opgeslagen?

  4. Zorg voor PL/SQL-uitvoer in realtime