/* * We are dropping logon/logoof triggers ON DATABASE as it impacts a critical path. * The old code for the triggers can be looked up from the OVM_MAIN_SOLARIS_030819 label. */ /* 8.1.5 had problems with having the code for the TABLE trigger in the * same trigger as the ones for VIEW and USER. So, we moved the TABLE trigger * code to the new trigger no_vm_drop_table. * NOTE: We had further problems as above with 8.1.5 after having added some * more logic in the no_vm_drop trigger - So, we have moved all the logic * into a procedure and call this procedure from the trigger. This solves the * 8.1.5 problems and is in a way better becuase we will fire only one trigger * for any 'drop' DDL statement (as opposed to more than one earlier). */ create or replace procedure wmsys.no_vm_drop_proc wrapped a000000 1 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd 7 23e5 b06 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 / create or replace procedure wmsys.no_vm_create_proc wrapped a000000 1 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd 7 166e 6d3 84vaBAyYee3npcWHXHGWAlgRlsAwg81Uea6GYC+5weQYeW2RE+gr0xqM4TddtP3ClS1VVTLA sLbC4XX23C+wG8NJKnO7kEydeX62hQ2NuR0rNv//R4JyR/+5dDZ3xC22CV+nodLBhPW31E4y djslXWD+B51g5ISps3dRM7RR1tHTDEEqJpY6giheAXknvts4aMKW8whXvN13Z0YyL6tS9uNd XhYec4dkFw5eqNKEcvcVaOeQbmtByLQcctir0zMT2VdV4Xqrdp3a/y+vE5G68oG/c1kVaQjO d/Go6dE4egYJ8gze7q7iy4MrzQmxn3NrcZ6ISl0fIdIQH7pBDtrCcUA1etsf2x6pb4hrxZUX WpkYO1B028a0HudZQEx+x5GEJ1M/EedyP6cWPhzMqqzScb1RMlJhH2VRSLxmGdps2UfJ3zgs da0TdkbLsF1mZhmF6vXJC3RsqGyUHMjY3wWXiE3QHDn76EUh1Yx/wIL0j1534gMxymJmvOgW /ZQ/ffOahKcexdG11g6kFeFtBQuhRioVcnVv8q28LY1ENQV322SsMgLgDku6vm7gl8rniqLx LIReGcxxWIFX3deJE5sSy72IloHF8GCg5jt7qhcAFq0+80OnkEvHd17FdI1271kmri4n80BD CkGhcYeejIyGhU7wXt70+21fFHqfk+1u6UDuX4q6RwEV48ZXYXaqjr0Up2Oy8/8PkHc0dq/b dB3GBlRmec3gh4knbOpgy1BVBecRC5cF8HQaivdpK99MYgqQo2JczD5zE0VXtZLlfbUlZJzp +5ZkJxdXOPPOgXZtextoMfOqcjLJTXYE9eddOnZCax7yYUeJjQmGKqzaRmcpDrzei6uFgXMO aMv7G7gYujDZo6c4PIKp6vk5xpwpFPZ0MR2B2BkcYWlhBdJh4GI0mLSYjwsAhHj/0DnClT1U tJ436yufZfPlTYrVyl0h23mi5WRmPk15DJ8bTcAPfseF9JlCM1cNfiL9tkru5qBS84fuUZd1 8Zq45yCSmVqs1kj9THe7UXrqcivTArz4IuPbQ2fHOUwaAV7ZxtBJ0Ao6Ls/AMjIWuV1gqoM/ IQChlLchh1VqEwjqZAW1ugKjsG2uTwb1IPV8dZqWTxzc4lEsKEUkcaTsxaLrcvZn/XWe3Qpa VWwpi3tATwjJP8RK69fgOlNKwcQWvoIzSi9+hvXtQqNV5jNOD6ZGq1Z4xAgQdMWhJ+QaI6Gn uiIBRJEseQjpBUUcEc2rqTiKWMC0JE6yEHDmulhdcTnBgU5xWezdPh5ErYIYHeocp4oUjpTV ItZPPnc0K9mp6IhAI080UIITEAMZttoFhPCHLHGJ1KgHfJz2URdD+z4qpXEdMT2iM0gUxlH3 Z28wn33IejFtkfSPA/kQCOPxHnII16uvBWWTjMawPcWhsQg7JojalmqbCiOwoFliXqwXDwDC oOi8WhJ/V2fBJR6tLKN09lXUK3TWDJgBiEhQzPhl60VyHINFRYRgeRbiIA9hVq7JS7Q29zYP zWVT9Tby2ZtLlWxWIIAgd0DRTCvvSbbPPJw9voLG0SDH5vqvuIA2lkA2MzREn57/Xzmaf+QC OnNYizX0EZa2b4Om4BZOBeKhzADsll+fEv+f1jMx4kPSL3Kvuz2GTt9z7S6qmvzS/qBx5AiO IOIfHgc6xf2eh62sjT9v2QXO2XgkBLwukyBeK/iJ6aJz+dCCp5skZjCtc7kshWDgGA== / create or replace procedure wmsys.no_vm_alter_proc wrapped a000000 1 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd 7 851 2ea 4qalCPghJGmSN7th/D6lSsdSWPYwg9dc2UgFfC+KMQ8tB+Hxnmq4Iz5pakQR3qQD94WpGkNd ohRhy72jJkvwDgfPzz4lpxYkGDk1GH1mQhe+0FhMkqOlBLe+ZxbVc9JemnO0b/Zz9kxihCI6 4j3NKubconrvBscsJ7bvMWv0lgSecqe3iRsJ986eFl4w9GbhxRKmXiIX+hk5D8Z8doEbMKFY r32O5hG3SqhpkfHgpnGpIGNWrxPK4eBmDfqyS4VdO3TK4Spqe8qpZyoffpG8LdzapIGfQkoD MLAU6ATV4y47xeSOPUPA6r4CsKwXcMeybzHGdgIabjhReXbeTG+CIUa5mfZtFJgvud6FGnTm EoNzzz9AZ7DFfWpr90cg3FTrzpez7pVIlAQoebHiIMa1eAQjzebrX2CoUwTn5myDclCoJidn EAhD5oIZB8qWPBMH5VYraVUkb9nNOae/AZN57rym2qKVJy+i7xMVLSiY5ofbloQmdL5/rsGI t0qRcC38T5ymwEMmcM9bgPKKq2SAFtikdSUJUrPAncdhFBM6Hs4waV1ElwV6Lv/Rir3Bz6PW u85IY2rDHNFyP4gPoHr6RhESUBGNUKorZWuqlCXd331Bj+1asGxlGUpzjEIRyMl4mCUNHkIV ud/SdzcjoYy1xYJi6pW74B1cva4gRdgXgc+Bm7yHwKpzcvY/uct9/xUI6VCvmpJlqf6tG81P CkLQIuT7jEBm3g== / create or replace trigger wmsys.no_vm_ddl before alter or create or drop or rename on database when ((sys.sysevent in ('ALTER', 'RENAME') and sys.dictionary_obj_type in ('INDEX','TABLE')) or (sys.sysevent = 'CREATE' and sys.dictionary_obj_type in ('INDEX', 'PROCEDURE', 'TRIGGER', 'VIEW')) or (sys.sysevent = 'DROP' and sys.dictionary_obj_type in ('INDEX', 'PROCEDURE', 'ROLE', 'TABLE', 'TRIGGER', 'TYPE', 'USER', 'VIEW'))) declare s_event varchar2(100) := sys.sysevent ; validStack integer ; begin if (sys_context('lt_ctx', 'allowDDLOperation')='true') then return ; end if ; if (sys_context('lt_ctx', 'validStack') is null or sys_context('lt_ctx', 'validStack') != 'YES') then validStack := 0 ; else validStack := 1 ; end if ; if (s_event='CREATE') then execute immediate 'call wmsys.no_vm_create_proc(:1,:2,:3,:4)' using sys.dictionary_obj_type, sys.dictionary_obj_name, sys.dictionary_obj_owner, validStack ; elsif (s_event='DROP') then execute immediate 'call wmsys.no_vm_drop_proc(:1,:2,:3,:4)' using sys.dictionary_obj_type, sys.dictionary_obj_name, sys.dictionary_obj_owner, validStack ; elsif (s_event in ('ALTER', 'RENAME')) then execute immediate 'call wmsys.no_vm_alter_proc(:1,:2,:3,:4)' using sys.dictionary_obj_type, sys.dictionary_obj_name, sys.dictionary_obj_owner, validStack ; end if ; end; / alter trigger wmsys.no_vm_ddl disable; create or replace trigger wmsys.no_vm_drop_a after drop on database when (sys.dictionary_obj_type in ('USER')) begin execute immediate 'call wmsys.lt_ctx_pkg.allowDDLOperation(''false'')' ; end; / alter trigger wmsys.no_vm_drop_a disable; declare drop_procedure EXCEPTION; PRAGMA EXCEPTION_INIT(drop_procedure, -04043); begin execute immediate 'drop procedure WMSYS.OWM_VALIDATE' ; exception when drop_procedure then null; end; / /* * This proc is used by dbms_registry to validate * owm_installation. */ declare version_str varchar2(100) := wmsys.wm$getDbVersionStr; cnt integer := 0 ; begin if ((nlssort(version_str, 'nls_sort=ascii7') >= nlssort('9.2.0.5.0', 'nls_sort=ascii7') and nlssort(version_str, 'nls_sort=ascii7') < nlssort('A.0.0.0.0', 'nls_sort=ascii7')) or nlssort(version_str, 'nls_sort=ascii7') >= nlssort('A.1.0.2.0', 'nls_sort=ascii7')) then execute immediate 'create or replace procedure SYS.VALIDATE_OWM is cnt integer ; begin select count(*) into cnt from all_objects where status = ''VALID'' and object_type = ''PACKAGE BODY'' and owner = ''WMSYS'' and object_name = ''LT'' ; if (cnt = 0) then dbms_registry.invalid(''OWM''); else dbms_registry.valid(''OWM''); end if; end;' ; end if ; execute immediate 'create or replace procedure WMSYS.VALIDATE_OWM is cnt integer ; begin select count(*) into cnt from all_objects where status = ''VALID'' and object_type = ''PACKAGE BODY'' and owner = ''WMSYS'' and object_name = ''LT'' ; if (cnt = 0) then dbms_registry.invalid(''OWM''); else dbms_registry.valid(''OWM''); end if; end;' ; end; /