Să presupunem că avem o bază de date și dorim ca fiecare intrare să fie identificată printr-un număr unic. Înaintea versiunii de bază de date Oracle 11g acest lucru era posibil doar cu ajutorul unui SELECT apelat într-un trigger. Această modalitate de incrementare necesită un swich de context de la motorul PL/SQL la motorul SQL.
create table test_table
(
id number primary key
);
create sequence test_seq start with 1 increment by 1 nocycle;
create or replace trigger test_trg
before insert on test_table
for each row
begin
select test_seq.nextval into :new.id
from dual;
end;
Începând cu versiunea Oracle 11g putem atribui direct o valoare secvenței unei variabile PL/SQL în trigger:
create table test_table
(
id number primary key
);
create sequence test_seq start with 1 increment by 1 nocycle;
create or replace trigger test_trg
before insert on test_tab
for each row
begin
:new.id := test_seq.nextval;
end;
În Oracle 12c putem atribui direct secvența NEXTVAL ca o valoare implicită pentru o coloană, nu mai este nevoie să se creeze un trigger pentru a popula coloana cu următoarea valoare a secvenței, trebuie doar să-l declarăm în definiția tabelei:
create sequence test_seq start with 1 increment by 1 nocycle;
create table test_table
(
id number default test_seq.nextval primary key
);