Trigger to Startup Pluggable Databases and Services

From NazimWIKI
Revision as of 23:00, 8 November 2019 by Admin (talk | contribs) (Created page with "The following trigger starts up all pluggable databases once the container database has been started and calls a stored procedure which starts up services which have been set...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The following trigger starts up all pluggable databases once the container database has been started and calls a stored procedure which starts up services which have been set up for the pluggable databases.

The Trigger

CREATE OR REPLACE TRIGGER SYS.OPEN_ALL_PLUGGABLES
   after startup
   on  database
BEGIN
   execute immediate 'alter pluggable database all open';
   sys.start_pdb_service_proc;
END open_all_pdbs;
/


The Stored Procedure

CREATE OR REPLACE PROCEDURE SYS.START_PDB_SERVICE_PROC IS


v_sql1 varchar2(32000);
v_sql2 varchar2(32000):= 'alter session set container=CDB$ROOT';

cursor serv is
select PDB
     , NAME
  from v$services
 where PDB not in ('CDB$ROOT');

begin

dbms_output.enable(100000);

for i in serv loop

 begin


   dbms_output.put_line(i.name || ' ' || i.pdb);

    v_sql1 := 'alter session set container=' || i.pdb || '';

    execute immediate v_sql1;
    dbms_service.start_service(i.name);

   exception
   when others then
   dbms_output.put_line(sqlerrm);

end;

end loop;


  execute immediate v_sql2;

exception
when others then
dbms_output.put_line(sqlerrm);
end;
/