If you look for the last insert result, check returning into.
Is it identity column, the rowid, any expression, get it back
SQL> var r varchar2(24)
SQL> var x number
SQL> var d varchar2(30)
SQL> insert into t values (default)
returning rowid,x,sysdate into :r,:x,:d;
1 row created.
SQL> print
R
--------------------
AAAaFTAAIAAAAILAAD
X
----------
6
D
--------------------------------
2014-11-07_13:33:03
It is documented in the SQL Reference. No need for PL/SQL here. I it very usefull if you use sequences too.
SQL> insert into t(x) values (s.nextval) returning x into :x;
1 row created.
SQL> print x
X
----------
2