What are the other ways of achieving auto-increment in oracle other than use of triggers?
From 12c you can use an identity column, which makes explicit the link between table and auto-increment; there's no need for a trigger or a sequence. The syntax would be:
create table ( generated as identity );