Wednesday, June 17, 2009

How to determine if you are on the latest Autoconfig related patches.

run below queries in SQLPLUS connected as APPS user:

SET head off Lines 120 pages 100 col n_patch format A65 col bug_number format A10 col patch_name format A10 spool LACF_ptch_level.txt select ' LACF ' FROM dual; / select bug_number, decode(bug_number, '2488995' ,'11i.ADX.A' ,'2682177' ,'11i.ADX.B' ,'2682863' ,'11i.TXK-C' ,'2757379' ,'11i.TXK-D' ,'2902755' ,'11i.TXK-E' ,'3002409' ,'11i.ADX.C' ,'3104607' ,'11i.TXK-F' ,'3219567' ,'11i.TXK-B' ,'3239694' ,'11i.TXK-G' ,'3271975' ,'11i.ADX.E' ,'3416234' ,'11i.TXK-H' ,'3453499' ,'11i.ADX.F' ,'3594604' ,'11i.TXK-I' ,'3817226' ,'11i.ADX.E.1' ,'3950067' ,'11i.TXK-J' ,'4104924' ,'11i.TXK-K' ,'4367673' ,'11i.TXK-J.1' ,'4717668' ,'11i.TXK-M' ,'5035661' ,'11i.One_off' ,'5107107' ,'11i.TXK-N ROLLUP PATCH (AUG 2' ,'5414396' ,'11i.Rapidclone Cons Jan2008' ,'5414396 ' ,'11i RAPIDCLONE CONSOLIDATED FIXES JAN/2008 ' ,'5456078' ,'11i.One_off_a' ,'5473858' ,'11i.ATG_PF.H RUP5' ,'5478710' ,'11i.TXK-O' ,'5759055' ,'11i.TXK-P' ,'5903765' ,'11i.ATG_PF.H RUP6' ,'5985992' ,'11i.TXK-Q' ,'6372396' ,'11i.TXK-S' ,'6718351' ,'11i.Rapidclone CONSOLIDATED' ) n_patch, last_update_date FROM ad_bugs WHERE bug_number IN ( '2488995', '2682177', '2682863', '2757379', '2902755', '3002409', '3104607', '3219567', '3239694', '3271975', '3416234', '3453499', '3594604', '3817226', '3950067', '4104924', '4367673', '4717668', '5035661', '5107107', '5414396', '5414396', '5456078', '5473858', '5478710', '5759055', '5903765', '5985992', '6372396', '6718351' );

FOR MULTI NODE INSTANCES:

set serveroutput on size 100000
DECLARE TYPE p_patch_array_type is varray(100) of varchar2(10); TYPE a_abstract_array_type is varray(100) of varchar2(60); p_patchlist p_patch_array_type; a_abstract a_abstract_array_type; p_appltop_name VARCHAR2(50); p_patch_status VARCHAR2(15); p_appl_top_id NUMBER; CURSOR alist_cursor IS SELECT appl_top_id, name FROM ad_appl_tops; procedure println(msg in varchar2) IS BEGIN dbms_output.put_line(msg); END; BEGIN open alist_cursor; p_patchlist := p_patch_array_type( '2488995' ,'2682177' ,'2682863' ,'2757379' ,'2902755' ,'3002409' ,'3104607' ,'3219567' ,'3239694' ,'3271975' ,'3416234' ,'3453499' ,'3594604' ,'3817226' ,'3950067' ,'4104924' ,'4367673' ,'4717668' ,'5035661' ,'5107107' ,'5414396' ,'5414396 ' ,'5456078' ,'5473858' ,'5478710' ,'5759055' ,'5903765' ,'5985992' ,'6372396' ,'6718351' ); a_abstract := a_abstract_array_type( '11i.ADX.A' ,'11i.ADX.B' ,'11i.TXK-C' ,'11i.TXK-D' ,'11i.TXK-E' ,'11i.ADX.C' ,'11i.TXK-F' ,'11i.TXK-B' ,'11i.TXK-G' ,'11i.ADX.E' ,'11i.TXK-H' ,'11i.ADX.F' ,'11i.TXK-I' ,'11i.ADX.E.1' ,'11i.TXK-J' ,'11i.TXK-K' ,'11i.TXK-J.1' ,'11i.TXK-M' ,'11i.One_off' ,'11i.TXK-N ROLLUP PATCH (AUG 2' ,'11i.Rapidclone Cons Jan2008' ,'11i RAPIDCLONE CONSOLIDATED FIXES JAN/2008 ' ,'11i.One_off_a' ,'11i.ATG_PF.H RUP5' ,'11i.TXK-O' ,'11i.TXK-P' ,'11i.ATG_PF.H RUP6' ,'11i.TXK-Q' ,'11i.TXK-S' ,'11i.Rapidclone CONSOLIDATED' ); LOOP FETCH alist_cursor INTO p_appl_top_id, p_appltop_name; EXIT WHEN alist_cursor%NOTFOUND; IF p_appltop_name NOT IN ('GLOBAL','*PRESEEDED*') THEN println(p_appltop_name ':'); for i in 1..p_patchlist.count LOOP p_patch_status := ad_patch.is_patch_applied('11i', p_appl_top_id, p_patchlist(i)); println('..Patch ' a_abstract(i) ' 'p_patchlist(i)' was ' p_patch_status); END LOOP; END IF; println('.'); END LOOP; close alist_cursor;
END;
/

For RELEASE 12 instances:
SET head off Lines 120 pages 100 col n_patch format A65 col bug_number format A10 col patch_name format A10 spool LACF_ptch_level.txt select ' LACF ' FROM dual; / select bug_number, decode(bug_number, '4494373' ,'R12.TXK.A' ,'5872965' ,'R12.OAM.A' ,'5909746' ,'R12.TXK.A.1' ,'5917601' ,'R12.TXK.A.2' ,'6077487' ,'R12.TXK.A.DELTA.3' ,'6145693' ,'R12.Rapidclone Cons Jan2008' ,'6776948' ,'R12.Rapidclone CONSOLIDATED' ) n_patch, last_update_date FROM ad_bugs WHERE bug_number IN ( '4494373', '5872965', '5909746', '5917601', '6077487', '6145693', '6776948' );

R12 FOR MULTI NODE INSTANCES:

set serveroutput on size 100000
DECLARE TYPE p_patch_array_type is varray(100) of varchar2(10); TYPE a_abstract_array_type is varray(100) of varchar2(60); p_patchlist p_patch_array_type; a_abstract a_abstract_array_type; p_appltop_name VARCHAR2(50); p_patch_status VARCHAR2(15); p_appl_top_id NUMBER; CURSOR alist_cursor IS SELECT appl_top_id, name FROM ad_appl_tops; procedure println(msg in varchar2) IS BEGIN dbms_output.put_line(msg); END; BEGIN open alist_cursor; p_patchlist := p_patch_array_type( '4494373' ,'5872965' ,'5909746' ,'5917601' ,'6077487' ,'6145693' ,'6776948' ); a_abstract := a_abstract_array_type( 'R12.TXK.A' ,'R12.OAM.A' ,'R12.TXK.A.1' ,'R12.TXK.A.2' ,'R12.TXK.A.DELTA.3' ,'R12.Rapidclone Cons Jan2008' ,'R12.Rapidclone CONSOLIDATED' ); LOOP
FETCH alist_cursor INTO p_appl_top_id, p_appltop_name;
EXIT WHEN alist_cursor%NOTFOUND;
IF p_appltop_name NOT IN ('GLOBAL','*PRESEEDED*')
THEN println(p_appltop_name ':');
for i in 1..p_patchlist.count
LOOP
p_patch_status := ad_patch.is_patch_applied('11i', p_appl_top_id, p_patchlist(i));
println('..Patch ' a_abstract(i) ' 'p_patchlist(i)' was ' p_patch_status);
END LOOP;
END IF;
println('.');
END LOOP;
close alist_cursor;
END;
/

No comments: