به مثال زیر دقت کنید:
SQL> select * from t1;
ID NAME
---------- --------------------
1 mohammad
3 mohsen
SQL> insert into t1 values (s1.nextval, 'javad');
1 row created.
SQL> select * from t1;
ID NAME
---------- --------------------
8 javad
1 mohammad
3 mohsen
SQL> insert into t1 values (s1.nextval, 'javadssssssssssssssssssssssssssssssssss
sssssssssssssssssssss');
insert into t1 values (s1.nextval, 'javadsssssssssssssssssssssssssssssssssssssss
ssssssssssssssss')
*
ERROR at line 1:
ORA-12899: value too large for column "MAHDI"."T1"."NAME" (actual: 60, maximum:
20)
SQL> insert into t1 values (s1.nextval, 'mahdi');
1 row created.
SQL> select * from t1;
ID NAME
---------- --------------------
8 javad
10 mahdi
1 mohammad
3 mohsen
در مثال بالا به این مسئله پی بردیم که چون sequence به صورت transactional نیست ما id شماره ۹ را به خاطر faile شدن تراکنش از دست دادهایم.
در حقیقت sequence جلو میرود بدون توجه به اینکه تراکنش انجام میشود یا نه پس همیشه حرکت رو به جلو رو داره.