列に自動的に割り当てられる値を取得する方法があります。それはRETURNING句です。
だから、これが私のシーケンスです:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
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>
EMPNOを印刷可能なSQL*Plus変数に戻しましたが、値はCURRVALと同じです:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
次の質問は、「CodeIgniterはRETURNING sysntaxをサポートしていますか?」です。わかりませんが、分からないと思います。 Oracle以外のほとんどのフレームワークはそうではありません。
INSERTステートメントをストアドプロシージャでラップするオプションは常にありますが、それは多くの人が嫌うアーキテクチャ上の決定です。