Modify all of your DB code to use nvl(v('APP_USER'), USER ) instead of just USER.
APEX only does a proxy connection to parsing_schema. ... never the actual user. (at least, as far as I know)
This means you'll have to re-evaluate all of your code if you are used to using USER to identify who is logged in.
Also, remember, the code will always be running as parsing_schema also.
This affects any AUTHID CURRENT_USER pl/sql code.
The point then is to make your code in the db to be usable in apex aswell as without apex.
select v('APP_USER') from dual
will yield NULL, and not "nobody" - which you probably meant within an apex context. A good example are audit triggers. If there are other programs or users performing dml on those tables, and thus not using apex, you still want the proper logging to occur.
So yes, what Mike said is the correct way to go.