EDIT: come la risposta di gavenkoa indica Oracle Database 12c (rilasciato un paio di anni dopo che questa domanda era chiesto) ha il supporto per Identity Columns.
Per quanto ne so, Oracle RDBMS è uno dei pochi (i soli?) prodotti di database SQL che non supporta l'identità / autonumerico colonne.
L'alternativa offerta da Oracle è sequenze di database , una funzionalità in molti modi molto più potente delle colonne auto-numeriche, ma non equivalente.
Non è che non mi piacciono le sequenze. Quello che odio è avere un modello di programmazione diverso per generare valori di identità di riga tra Oracle e qualsiasi altro database. Ad esempio, cerco spesso di configurare HSQL o SQLite per le app java che verranno eseguite su un database Oracle quando non sto lavorando specificamente sul livello dati (proprio come un database stub o mocking). Non posso farlo facilmente perché ho bisogno di un set diverso di script SQL DDL: uno per Oracle e uno per tutti gli altri; Ho anche bisogno di due set di file di mapping Hibernate se sto usando Hibernate.
Quello che trovo interessante è che Oracle Database, essendo uno dei pacchetti software aziendali più completi e robusti dell'ultimo decennio, non ha messo quella caratteristica apparentemente fondamentale nel loro prodotto, ma quasi tutti gli altri RDBMS, anche quelli più piccoli, ce l'ha.
Perché?
Perché oracle non supporta una sintassi di scelta rapida della colonna Identity basata su sequenza che le persone stupide e pigre come me possono usare?
L'unica ragione per cui posso pensare è che Oracle lo faccia apposta come strategia di lock-in del fornitore, quindi il tuo codice è più difficile da migrare verso altri RDBMS in cui non è possibile utilizzare le sequenze di database.
O forse sono solo sbagliato e confuso? Per favore, illuminami.