Puede usar la cláusula RETURNING para hacer esto en los procesos almacenados de Oracle.
Por ejemplo:
TABLEA tiene NOMBRE y EMP_ID. EMP_ID se completa internamente cuando se insertan registros.
INSERTAR EN TABLEA(NOMBRE) VALORES ('BOB') DEVOLVER EMP_ID EN o_EMP_ID;
Eso suponiendo que la línea está en un proceso almacenado con un parámetro de salida de o_EMP_ID.
Espero que ayude... si no, aquí hay un ejemplo más detallado:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm