I’ve never worked with Oracle forms, either, but the concept is simple enough. You’re looking at a particular record, say record 20, somewhere in the middle of your recordset/cursor when you do the insert. Based on your primary key, the new record would be record 21 if you ran the same query again, but that’s not happening, so that record isn’t part of your recordset. All the insert does is put the record in the table; it doesn’t affect the recordset you’re working with.
If there is a way to do an “Add New” on the recordset behind the form, as opposed to the table it’s based on, that would be half the solution; the reocrd would at least be there to scroll to. The forms technology might handle the other half, moving to the new record, or it might not. If not, it should be easy enough to do that yourself.
If there isn’t such an option, you’ll probably have to continue doing the Insert, but follow up with requerying the table, so the new record is part of the recordset. You shouldn’t need to change the Where clause, just execute the same query so the new record and the old records are all returned. (Assuming you don’t need to loosen up the criteria to have the new one included. But, don’t make it more restrictive.) Then use whatever move methods are available to move to your new record once the recordset is refreshed.
Sorry I can’t be more specific, but if you check the documentation, you should find what you need.