Il existe un moyen d'obtenir la valeur automatiquement affectée à une colonne :c'est la clause RETURNING.
Alors, voici ma séquence :
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Je vais l'utiliser dans une instruction INSERT :
SQL> var seqval number
SQL> insert into emp
2 (empno, ename, deptno, sal, job)
3 values
4 (emp_seq.nextval, 'JELLEMA', 50, 4575, 'PAINTER')
5 returning empno into :seqval
6 /
1 row created.
SQL>
J'ai renvoyé l'EMPNO dans une variable SQL*Plus que je peux imprimer, et il a la même valeur que CURRVAL :
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Votre question suivante est :"Est-ce que CodeIgniter prend en charge la syntaxe RETURNING ?" Je n'en ai aucune idée, mais je soupçonne que non. La plupart des frameworks non-Oracle ne le font pas.
Il y a toujours la possibilité d'encapsuler l'instruction INSERT dans une procédure stockée, mais c'est une décision architecturale que beaucoup de gens n'aiment pas.