MINI MINI MANI MO

Path : /proc/self/root/opt/oracle/product/18c/dbhomeXE/md/admin/
File Upload :
Current File : //proc/self/root/opt/oracle/product/18c/dbhomeXE/md/admin/locdbmig.sql

Rem
Rem $Header: sdo/admin/locdbmig.sql /main/24 2017/07/05 11:00:10 rjanders Exp $
Rem
Rem locdbmig.sql
Rem
Rem Copyright (c) 2005, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      locdbmig.sql - LOCatorDBMIGration
Rem
Rem    DESCRIPTION
Rem      Used for upgrading the Locator as part of DB upgrade if SDO is not
Rem      present
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem    BEGIN SQL_FILE_METADATA
Rem    SQL_SOURCE_FILE: sdo/admin/locdbmig.sql
Rem    SQL_SHIPPED_FILE: md/admin/locdbmig.sql
Rem    SQL_PHASE: UPGRADE
Rem    SQL_STARTUP_MODE: NORMAL
Rem    SQL_IGNORABLE_ERRORS: NONE
Rem    SQL_CALLING_FILE: NONE
Rem    END SQL_FILE_METADATA
Rem    
Rem    MODIFIED   (MM/DD/YY)
Rem    rjanders    06/30/17 - Fix SYS/MDSYS prefix
Rem    sravada     06/05/17 - add more NULL exceptions for upgrade
Rem    sravada     05/31/17 - add already_revoked
Rem    rjanders    05/10/17 - #26037683: Raise 'when other' exceptions
Rem    rjanders    04/27/17 - Correct "SQL_PHASE" metadata values
Rem    rjanders    03/23/17 - #25437999: Remove 'when others then NULL'
Rem                           handlers
Rem    sravada     01/11/17 - bug 25370681
Rem    sravada     08/27/15 - bug 21610321
Rem    rjanders    01/02/15 - long identifier project phase 1
Rem    sravada     05/06/14 - XbranchMerge sravada_lrg-11866119 from
Rem                           st_sdo_12.1.0
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    sravada     09/27/12 - lrg 7270325
Rem    sravada     06/25/12 - lrg 6948309
Rem    sravada     02/20/12 - bug 13729392
Rem    rjanders    02/07/12 - Remove DOC> C-style comments (security)
Rem    sravada     01/18/12 - grant trigger privs
Rem    zzhang      12/06/11 - Fix lrg 6584678
Rem    sravada     10/17/11 - inherit privs for Locator install case
Rem    sravada     10/05/10 - XbranchMerge sravada_lrg-4680044 from
Rem                           st_sdo_11.2.0
Rem    sravada     08/20/09 - bug 8740141
Rem    sravada     08/27/06 - bug 5453881
Rem    sravada     05/25/05 - sravada_cleanup_label_difs_2
Rem    sravada     05/25/05 - Created
Rem

Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@@?/rdbms/admin/sqlsessstart.sql
Rem ********************************************************************

-- bug 13561951 
grant ADMINISTER DATABASE TRIGGER to MDSYS;


Alter session set current_schema=MDSYS;

/* Perform any upgrade actions if SDO is not installed.
    If SDO is installed, all of these actions are done as part of
       sdodbmig.sql  script. */

COLUMN :script_name NEW_VALUE comp_file NOPRINT
Variable script_name varchar2(50)
Variable sdo_cnt  number;

declare
  sdo_status VARCHAR2(20) := NULL;
begin
  -- Check whether SDO is installed.
  -- If not, install Locator
  select count(*) into :sdo_cnt from SYS.all_objects where owner='MDSYS' and
  object_name = 'SDO_GEOMETRY';
  sdo_status := dbms_registry.status('SDO');
  if (:sdo_cnt = 0) then
    :script_name := '?/rdbms/admin/nothing.sql';
  elsif (sdo_status is NULL or sdo_status = 'OPTION OFF' or 
                         sdo_status = 'REMOVED') then
    :script_name := '@sdomigrt.sql';
  else
    :script_name := '?/rdbms/admin/nothing.sql';
  end if;
end;
/

select :script_name from SYS.DUAL;
@&comp_file

-- /* unload all the java classes so that they can be recreated with catmloc.sql
--    or catmd.sql. This will prevent java classes from being invalid
--     if the seed is used with SE install */

COLUMN loc_fname NEW_VALUE loc_file NOPRINT;
SELECT dbms_registry.script('JAVAVM','@sdounloadj.sql') AS loc_fname FROM SYS.DUAL;

@&loc_file

alter session set current_schema=MDSYS;

-- If we are coming from SE, then drop Spatial objects if present due to seed

declare
stmt varchar2(1000);
obj_name varchar2(260);
type                    cursor_type is REF CURSOR;
query_crs               cursor_type ;
begin

   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''FUNCTION'' and owner = ''MDSYS'' ';

      OPEN query_crs FOR stmt;
  LOOP 
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop function mdsys.'||obj_name;
     EXCEPTION 
     WHEN OTHERS THEN 
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;

commit;


-- PACKAGE BODY
   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''PACKAGE BODY'' and owner = ''MDSYS'' ';

      OPEN query_crs FOR stmt;
  LOOP
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop PACKAGE BODY mdsys.'||obj_name;
     EXCEPTION
     WHEN OTHERS THEN
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;
commit;

-- PROCEDURE
   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''PROCEDURE'' and owner = ''MDSYS'' ';

      OPEN query_crs FOR stmt;
  LOOP
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop PROCEDURE mdsys.'||obj_name;
     EXCEPTION
     WHEN OTHERS THEN
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;
commit;

-- TYPE
   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''TYPE'' and owner = ''MDSYS'' ' ||
            ' and object_name in ( ''NDM_VECTOR_2D'', ''NUM_ARRAY'', ''OPENLS_ORDINATES'' ) ' ;

      OPEN query_crs FOR stmt;
  LOOP
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop TYPE mdsys.'||obj_name;
     EXCEPTION
     WHEN OTHERS THEN
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;
commit;

-- TYPE BODY
   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''TYPE BODY'' and owner = ''MDSYS'' ' ;

      OPEN query_crs FOR stmt;
  LOOP
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop TYPE BODY mdsys.'||obj_name;
     EXCEPTION
     WHEN OTHERS THEN
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;
commit;


-- VIEW
   stmt :=  ' select object_name from SYS.all_objects where  ' ||
            ' object_type = ''VIEW'' and owner = ''MDSYS'' ' ||
            ' and object_name  like ''%GEOR%'' ' ||
            ' OR object_name  like ''%NET%'' ' ||
            ' OR object_name  like ''%TIN%'' ' ||
            ' OR object_name  like ''%SESSION%'' ' ||
            ' OR object_name  like ''%TOKEN%'' ' ;

      OPEN query_crs FOR stmt;
  LOOP
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
       EXECUTE immediate ' drop view mdsys.'||obj_name;
     EXCEPTION
     WHEN OTHERS THEN
      obj_name := ' ';
    end;
   END LOOP;
  close query_crs;
commit;

  stmt := ' select NAME from sys.all_dependencies ' ||
          ' where OWNER= ''PUBLIC'' and referenced_owner=''MDSYS''  ';

   OPEN query_crs FOR stmt;
  LOOP 
  BEGIN
    fetch query_crs into  obj_name;
    EXIT when query_crs%NOTFOUND ;

    begin
      EXECUTE immediate ' drop public synonym "'||obj_name||'"';
     EXCEPTION 
     WHEN OTHERS THEN 
      obj_name := ' ';
    end;

  end;
  END LOOP;
  close query_crs;

end;
/


declare
begin
 begin
   execute immediate 'drop package MDSYS.SDO_NET_PARTITION ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')1]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.MD_NET ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')2]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.PRVTPC ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')3]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.PRVTTNPC ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')4]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.PRVT_PC ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')5]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.PRVT_TIN ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')6]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.PRVT_SAM ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')7]: ' ||SQLERRM); RAISE;
 end;
 begin
   execute immediate 'drop package MDSYS.SDO_ROUTER_PARTITION ';
   exception
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[locdbmig.sql(' || $$PLSQL_LINE || ')8]: ' ||SQLERRM); RAISE;
 end;

end;
/



/* Now load catmdloc.sql only of SDO is not installed. If SDO is installed,
  the top level script will load catmd.sql */

grant inherit any privileges to MDSYS;
grant inherit privileges on user SYS to MDSYS;

COLUMN :script_name NEW_VALUE comp_file NOPRINT
Variable script_name varchar2(50)
 
declare
  sdo_status VARCHAR2(20) := NULL;
begin
  -- Check whether SDO is installed.
  -- If not, install Locator
  sdo_status := dbms_registry.status('SDO');
  if (sdo_status is NULL or sdo_status = 'OPTION OFF'
                        or sdo_status = 'REMOVED') then
    :script_name := '@catmdloc.sql';
  else
    :script_name := '?/rdbms/admin/nothing.sql';
  end if;
end;
/
 
select :script_name from SYS.DUAL;
@&comp_file
 
-- for upgrade each time we see a different error, just ignore
-- everything as there is nothing special here in this block
declare
begin
  begin
  execute immediate 'revoke inherit privileges on user MDSYS from public';
  exception
    when others then null;
  end;

  begin
  execute immediate 'revoke inherit privileges on user MDDATA from public';
  exception
    when others then null;
  end;
end;
/

-- reset the session id back to SYS
Alter session set current_schema=SYS;



Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@?/rdbms/admin/sqlsessend.sql
Rem ********************************************************************


OHA YOOOO