#check if patch applied & count of invalid objects, create invalids table & replace 7777777 with patch number
select name,user from v$database;
select BUG_NUMBER, LAST_UPDATE_DATE, success_flag from ad_bugs where bug_number=xxx;
create table apps.invalids_13jul12_7777777 as select * from dba_objects where status='INVALID';
select count(*) from dba_objects where status='INVALID';
#copy patch to stage area
cp /tmp/pxxx.zip /dxxx1i/applcsf
#unzip patch zip
unzip pxxx.zip
#check if all prerequisites meet, such as merge or prerequisite patch need
view readme
#switch user
adstpall.sh apps/apps
#wait several minutes till all FNDLIBR process quit
ps -ef | grep FNDLIBR | grep dxxx1i
##check if patch applied & count of invalid objects, drop invalids table if no more invalids
select name,user from v$database;
select BUG_NUMBER, LAST_UPDATE_DATE, success_flag from ad_bugs where bug_number=xxx;
select object_name,object_type,owner,LAST_DDL_TIME from dba_objects where status='INVALID' and object_name||object_type||owner not in (select object_name||object_type||owner from apps.invalids_13jul12_7777777);
select count(*) from dba_objects where status='INVALID';
drop table apps.invalids_13jul12_7777777;
#health check
login instance from frontend, switch to Application Administrator responsibility, submit Active User request, check output.