If you're new to it (or even if you aren't) I strongly recommend three books by Steven Feuerstein (O'Reilly Press): _PL/SQL Programming_, _Advanced PL/SQL Programming_ and _Oracle built-in Packages_.
In Oracle, every query that is sent to the server is retained in its parsed state in the SGA as long as memory is available.
Show all data to the user front end via views, thus preventing the user from having direct access to the data.
This approach has the advantages that Wayne points out.
-- Wayne Niddery - Win Wright Consulting RADBooks - You have a Right to Free Speech, but not the right to make me listen, nor to use my property as a soapbox. Whilst I accept that there are general benefits of using stored procedures, I see life being far easier for normal database updating using either a procedure that returns an updatable cursor or plain old SQL (I would like all the SQL to be centralised and not in the client however).
Most tables require a screen to update them that is (90% of the time) simply a view of the table, with little bells or whistles.
I have taken the pkgapply demo a little further to do a refresh immediately upon editing and also to do optimistic locking (both simple when I read the help pages).