With SQLServer, it seems to be generally accepted that adding a SELECT SCOPE_IDENTITY() to the end of your insert is the best way to return the PK of the newly-inserted reco
You can use the RETURNING clause to do this in Oracle stored procs.
For example:
TABLEA has NAME and EMP_ID. EMP_ID is populated internally when records are inserted.
INSERT INTO TABLEA(NAME) VALUES ('BOB') RETURNING EMP_ID INTO o_EMP_ID;
That's assuming that line is in a stored proc with an output parameter of o_EMP_ID.
Hope that helps... if not, here's a more detailed example:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm