Existe uma maneira de obter o valor atribuído automaticamente a uma coluna:é a cláusula RETURNING.
Então, aqui está minha sequência:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Vou usá-lo em uma instrução 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>
Retornei o EMPNO em uma variável SQL*Plus que posso imprimir e tem o mesmo valor que CURRVAL:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Sua próxima pergunta é:"o CodeIgniter suporta a sintaxe RETURNING?" Não faço ideia, mas suspeito que não. A maioria dos frameworks não Oracle não.
Sempre há a opção de envolver a instrução INSERT em um procedimento armazenado, mas essa é uma decisão de arquitetura que muitas pessoas não gostam.