Hay una forma de obtener el valor asignado automáticamente a una columna:es la cláusula RETURNING.
Entonces, aquí está mi secuencia:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Voy a usarlo en una instrucción 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>
Devolví EMPNO a una variable SQL*Plus que puedo imprimir y tiene el mismo valor que CURRVAL:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Su próxima pregunta es, "¿CodeIgniter es compatible con el sistema de RETORNO?" No tengo idea, pero sospecho que no. La mayoría de los marcos que no son de Oracle no lo hacen.
Siempre existe la opción de envolver la declaración INSERT en un procedimiento almacenado, pero esa es una decisión arquitectónica que a mucha gente no le gusta.