MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/md/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/md/admin/sdoe102.sql

Rem
Rem $Header: sdo/admin/sdoe102.sql /main/75 2017/10/20 11:01:23 rjanders Exp $
Rem
Rem sdoe102.sql
Rem
Rem Copyright (c) 2005, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdoe102.sql - script for downgrading from 11g to 10.2
Rem
Rem    DESCRIPTION
Rem      <short description of component this file declares/defines>
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem    BEGIN SQL_FILE_METADATA
Rem    SQL_SOURCE_FILE: sdo/admin/sdoe102.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdoe102.sql
Rem    SQL_PHASE: DOWNGRADE 
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    10/08/17 - Add MDSYS to spatial type
Rem    rjanders    06/30/17 - Add SYS/MDSYS prefixes
Rem    rjanders    05/10/17 - #26037683: Raise 'when other' exceptions
Rem    rjanders    03/23/17 - #25437999: Remove 'when others then NULL'
Rem                           handlers
Rem    sravada     01/11/17 - bug 25370681
Rem    rjanders    03/18/15 - #20725259: Long identifier project
Rem    rjanders    01/29/14 - #18146131: Use NUMBER_TO_CHAR() for TO_CHAR()
Rem    rjanders    03/16/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    rjanders    04/22/12 - Correct open cursor exception handling
Rem    zzhang      02/01/12 - Fix bug 13647082
Rem    zzhang      02/01/12 - Fix bug 13647066
Rem    alwu        04/30/09 - add fix for ORA-30512
Rem    sravada     02/14/08 - 
Rem    ningan      12/05/07 - bug 6653556
Rem    mhorhamm    11/20/07 - Truncate sdo_cs_srs
Rem    sravada     06/25/07 - downgrade prvtpc
Rem    sdas        06/17/07 - upgrade pkg drop done by seme102.sql
Rem    ningan      05/31/07 - Drop SDO_NETWORK_T & SDO_NETWORK_I
Rem    sdas        05/24/07 - Move semantic store stuff to seme102.sql
Rem    sdas        05/17/07 - fix RDF downgrade
Rem    sravada     05/11/07 - Move locator stuff to loce102.sql
Rem    mhorhamm    03/19/07 - Continue
Rem    mhorhamm    02/19/07 - Drop trigger SDO_coord_op_param_val_TRIGGER
Rem    sravada     05/02/07 - delete type body for TST_TEXT types
Rem    wexu        05/03/07 - drop sdo_geor_srs constructor
Rem    rkothuri    04/29/07 - fix 6021893
Rem    sdas        04/16/07 - remove rdf dummy upgrade/downgrade routines
Rem    rkothuri    04/11/07 - drop reset_inpgor_index
Rem    sravada     04/02/07 - add st_geometry modifiers
Rem    mhorhamm    02/28/07 - Shorten table name for WM
Rem    mhorhamm    01/12/07 - app user-related roles not required, any more
Rem    sravada     12/26/06 - downgrade geocoder/router jars
Rem    sravada     12/20/06 - down grade geocoder type
Rem    jcwang      11/30/06 - drop package sdo_net_partition
Rem    sravada     11/27/06 - drop sdoapi.jar
Rem    hgong       11/08/06 - drop sdotype.jar
Rem    alwu        11/03/06 - add fix the invalid objects
Rem    mhorhamm    10/11/06 - Drop tables for WS conference
Rem    alwu        09/29/06 - add logic to handle sdo_sem_perf package
Rem    mhorhamm    09/25/06 - Drop WS-related objects
Rem    hgong       10/05/06 - remove dropping sdondmx.jar
Rem    jxyang      09/08/06 - remove matchVector from sdo_geo_addr
Rem    mannamal    08/28/06 - Add drop of sem indextype stats package
Rem    alwu        08/15/06 - add drop of rdf_hist$ related
Rem    alwu        08/11/06 - bug: 4693687 invalidate index when truncate
Rem                           happens
Rem    rkothuri    08/06/06 - add drop sdo_tin_blk_tpe
Rem    mannamal    07/10/06 - Add drop of sem btree package 
Rem    mannamal    06/15/06 - Add DROP of SEM ancillary operators 
Rem    sdas        06/14/06 - RDF downgrade to 10.2 
Rem    mannamal    06/12/06 - Add FORCE option to dropping SEM operators 
Rem    mannamal    06/09/06 - Add SEM primary operator drops 
Rem    rkothuri    05/31/06 - add separate sdo_tin_blk types 
Rem    alwu        04/19/06 - remove the SDO_SEM_CTX created 
Rem    zzhang      04/18/06 - drop package sdo_geor_admin
Rem    rkothuri    04/07/06 - drop tin types/pkgs 
Rem    ningan      04/11/06 - Drop sdonm.jar & sdondmx.jar
Rem    mhorhamm    04/04/06 - Drop further constraint 
Rem    mhorhamm    04/04/06 - Downgrade some changes to SDO_UNITS_OF_MEASURE 
Rem    jcwang      03/29/06 - fix NDM PL/SQL Wrapper type for downgrade 
Rem    rchatter    03/28/06 - drop wfs/cs metadata 
Rem    wexu        03/28/06 - drop package sdo_geor_aux 
Rem    mhorhamm    02/28/06 - Change sequence when dropping tables 
Rem    mhorhamm    02/22/06 - Downgrade OpenLS 
Rem    sravada     02/22/06 - downgrade the indextype 
Rem    wexu        01/17/06 - drop range types 
Rem    sravada     01/11/06 - downgrade sdo_topo_geometry type 
Rem    zzhang      11/18/05 - Created
Rem

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

ALTER SESSION SET CURRENT_SCHEMA = MDSYS;
 
EXECUTE dbms_registry.downgrading('SDO');

@@sdoe111.sql
-- Downgrade Locator stuff first
@@loce102.sql

ALTER SESSION SET CURRENT_SCHEMA = MDSYS;

-- TIN specific functions
DROP PUBLIC  SYNONYM sdo_tin_pkg;
DROP PACKAGE mdsys.sdo_tin_pkg;
DROP PACKAGE mdsys.prvt_tin;

DROP TYPE mdsys.SDO_TIN_BLK_TYPE;
DROP TYPE mdsys.SDO_PC_BLK_TYPE;
DROP PUBLIC SYNONYM SDO_TIN;
DROP TYPE mdsys.SDO_TIN;

DROP TABLE mdsys.SDO_TIN_BLK_TABLE;

DROP PUBLIC SYNONYM mdsys.SDO_TIN_BLK;
DROP TYPE mdsys.SDO_TIN_BLK;

-- Point-cloud specific functions
DROP PUBLIC  SYNONYM sdo_pc_pkg;
DROP PACKAGE mdsys.sdo_pc_pkg;
DROP PACKAGE mdsys.prvt_pc;
DROP PACKAGE mdsys.prvtpc;

DROP PUBLIC SYNONYM SDO_PC;
DROP TYPE mdsys.SDO_PC;

DROP TABLE mdsys.SDO_PC_BLK_TABLE;

DROP PUBLIC SYNONYM SDO_PC_BLK;
DROP TYPE MDSYS.SDO_PC_BLK;

DROP PUBLIC SYNONYM SDO_ORGSCL_TYPE;
DROP TYPE MDSYS.SDO_ORGSCL_TYPE force;

drop library ORDMD_TNPC_LIBS;

-- TIN/PC Metadata
DROP PACKAGE mdsys.sdotnpc;
DROP PACKAGE mdsys.prvttnpc;

DROP PUBLIC SYNONYM ALL_SDO_TIN_PC_SYSDATA;
DROP PUBLIC SYNONYM USER_SDO_TIN_PC_SYSDATA;
DROP VIEW MDSYS.ALL_SDO_TIN_PC_SYSDATA;
DROP VIEW MDSYS.USER_SDO_TIN_PC_SYSDATA;
DROP TABLE MDSYS.SDO_TIN_PC_SYSDATA_TABLE;

-- For OpenLS
drop package sdo_ols;
drop package sdo_ols_locutl;
drop package sdo_ols_presentation;
drop package sdo_ols_route;
drop package sdo_ols_directory;

drop table ols_dir_synonyms;
drop table ols_dir_categorizations;
drop table ols_dir_businesses;
drop table ols_dir_categories;
drop table ols_dir_category_types;
drop table ols_dir_business_chains;

drop table openls_namespaces;
drop table openls_classifications;
drop table openls_xpaths;
drop table openls_nodes;
drop table openlsservices;

drop type OPENLS_ORDINATES force;

-- For WS

drop sequence mdsys.sdo_ws_conference_ids;
drop table mdsys.sdo_ws_conference_participants;
drop table mdsys.sdo_ws_conference_results;
drop table mdsys.sdo_ws_conference;

@@sdoewfcs.sql


--for GeoRaster
drop type mdsys.sdo_range_array;
drop type mdsys.sdo_range;

BEGIN
 BEGIN
  EXECUTE IMMEDIATE 
   'ALTER TYPE MDSYS.SDO_GEOR_SRS DROP ' ||
    'CONSTRUCTOR FUNCTION SDO_GEOR_SRS(SELF IN OUT NOCOPY SDO_GEOR_SRS) ' ||
    ' RETURN SELF AS RESULT';
 EXCEPTION
   WHEN OTHERS THEN
     SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                            'EXCEPTION[sdoe102.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
 END;

 BEGIN
  EXECUTE IMMEDIATE 'DROP TYPE BODY MDSYS.SDO_GEOR_SRS';
 EXCEPTION
   WHEN OTHERS THEN
     SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                            'EXCEPTION[sdoe102.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
 END;
END;
/

drop trigger MDSYS.sdo_geor_err_trigger;
drop trigger MDSYS.sdo_geor_bddl_trigger;
drop trigger MDSYS.sdo_geor_addl_trigger;

drop package body MDSYS.sdo_geor_aux;
drop package MDSYS.sdo_geor_aux;

drop package body MDSYS.sdo_geor_admin;
drop package MDSYS.sdo_geor_admin;

-- ----------------------------------------------------------------
--    Trigger for dropping a GeoRaster user or table
-- ----------------------------------------------------------------
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_DROP_USER
AFTER DROP ON DATABASE
DECLARE
  type vcurType is REF CURSOR;
  vcur vcurType;
  stmt VARCHAR2(4000);
  stm2 VARCHAR2(4000);
  rdt  VARCHAR2(130);
  schema VARCHAR2(128);
  rsid number;
  cnt  number;
  table_not_found exception;
  pragma exception_init(table_not_found, -00942);
BEGIN
  IF sys.dbms_standard.dictionary_obj_type = 'USER' THEN
    stmt := 'DELETE FROM MDSYS.SDO_GEOR_SYSDATA_TABLE WHERE SDO_OWNER = :name';
    EXECUTE IMMEDIATE stmt using sys.dbms_standard.dictionary_obj_name; 

  ELSIF sys.dbms_standard.dictionary_obj_type = 'TABLE' AND
        sys.dbms_standard.dictionary_obj_owner <> 'MDSYS' AND
        sys.dbms_standard.dictionary_obj_name <> 'SDO_GEOR_SYSDATA_TABLE' THEN
    stmt := 'SELECT COUNT(*) FROM MDSYS.SDO_GEOR_SYSDATA_TABLE ' ||
            ' WHERE SDO_OWNER = :1 AND GEORASTER_TABLE_NAME = :2';
    EXECUTE IMMEDIATE stmt INTO cnt USING sys.dbms_standard.dictionary_obj_owner,
                                          sys.dbms_standard.dictionary_obj_name;
    IF cnt > 0 THEN
      stmt := 'SELECT RDT_TABLE_NAME, RASTER_ID FROM MDSYS.SDO_GEOR_SYSDATA_TABLE' ||
              ' WHERE SDO_OWNER = :1 AND GEORASTER_TABLE_NAME = :2';
      open vcur for stmt using sys.dbms_standard.dictionary_obj_owner, sys.dbms_standard.dictionary_obj_name;
      loop
        fetch vcur into rdt, rsid;
        exit when vcur%NOTFOUND;
        if instr(rdt, '.') = 0 then
          stm2 := 'DELETE FROM '||SYS.DBMS_ASSERT.ENQUOTE_NAME(sys.dbms_standard.dictionary_obj_owner) || '.' || SYS.DBMS_ASSERT.ENQUOTE_NAME(rdt)||' WHERE rasterid=:1';
        else 
          schema:=substr(rdt,1,INSTR(rdt,'.', -1)-1);
          rdt:=substr(rdt,INSTR(rdt,'.', -1)+1);
          stm2 := 'DELETE FROM '||SYS.DBMS_ASSERT.ENQUOTE_NAME(schema)||'.'||SYS.DBMS_ASSERT.ENQUOTE_NAME(rdt)||' WHERE rasterid=:1';
        end if;
        begin
          execute immediate stm2 using rsid;
        exception
          -- it is ok if the rasterDataTable does not exists
          when table_not_found then NULL;
          when others then
            raise;
        end;
      end loop;
      close vcur;
      stmt := 'DELETE FROM MDSYS.SDO_GEOR_SYSDATA_TABLE ' ||
              ' WHERE SDO_OWNER = :name AND GEORASTER_TABLE_NAME = :2';
      EXECUTE IMMEDIATE stmt USING sys.dbms_standard.dictionary_obj_owner, sys.dbms_standard.dictionary_obj_name;
    END IF;
  END IF;
END;
/
SHOW ERRORS;

-- ----------------------------------------------------------------
--    Trigger for truncating a GeoRaster table
-- ----------------------------------------------------------------
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_TRUNC_TABLE
AFTER TRUNCATE ON DATABASE
DECLARE
  type vcurType is REF CURSOR;
  vcur vcurType;
  stmt VARCHAR2(4000);
  stm2 VARCHAR2(4000);
  rdt  VARCHAR2(130);
  schema VARCHAR2(128);
  rsid number;
  cnt  number;
  m_id number;
  model varchar2(100);

  e_cannot_multi_mod EXCEPTION;
  PRAGMA EXCEPTION_INIT(e_cannot_multi_mod, -30512);
  table_not_found EXCEPTION;
  PRAGMA EXCEPTION_INIT(table_not_found, -00942);
BEGIN
  IF sys.dbms_standard.dictionary_obj_type <> 'TABLE' THEN
    return;
  END IF;

  stmt := 'SELECT COUNT(*) FROM MDSYS.SDO_GEOR_SYSDATA_TABLE ' ||
          ' WHERE SDO_OWNER = :1 AND GEORASTER_TABLE_NAME = :2';
  EXECUTE IMMEDIATE stmt INTO cnt USING sys.dbms_standard.dictionary_obj_owner,
                                        sys.dbms_standard.dictionary_obj_name;
  IF cnt > 0 THEN
    stmt := 'SELECT RDT_TABLE_NAME, RASTER_ID FROM MDSYS.SDO_GEOR_SYSDATA_TABLE' ||
            ' WHERE SDO_OWNER = :1 AND GEORASTER_TABLE_NAME = :2';
    open vcur for stmt using sys.dbms_standard.dictionary_obj_owner, sys.dbms_standard.dictionary_obj_name;
    loop
      fetch vcur into rdt, rsid;
      exit when vcur%NOTFOUND;
      if instr(rdt, '.') = 0 then
        stm2 := 'DELETE FROM '||SYS.DBMS_ASSERT.ENQUOTE_NAME(sys.dbms_standard.dictionary_obj_owner) || '.' || SYS.DBMS_ASSERT.ENQUOTE_NAME(rdt)||' WHERE rasterid=:1';
      else 
        schema:=substr(rdt,1,INSTR(rdt,'.', -1)-1);
        rdt:=substr(rdt,INSTR(rdt,'.', -1)+1);
        stm2 := 'DELETE FROM '||SYS.DBMS_ASSERT.ENQUOTE_NAME(schema)||'.'||SYS.DBMS_ASSERT.ENQUOTE_NAME(rdt)||' WHERE rasterid=:1';
      end if;
      begin
        execute immediate stm2 using rsid;
      exception
        -- it is ok if the rasterDataTable does not exists
        when table_not_found then NULL;
        when others then
          raise;
      end;
    end loop;
    close vcur;
    stmt := 'DELETE FROM MDSYS.SDO_GEOR_SYSDATA_TABLE ' ||
            ' WHERE SDO_OWNER = :name AND GEORASTER_TABLE_NAME = :2';
    EXECUTE IMMEDIATE stmt USING sys.dbms_standard.dictionary_obj_owner, sys.dbms_standard.dictionary_obj_name;
  END IF;


  -- RDF trigger for TRUNCATE handler
  stmt := 'SELECT COUNT(*) FROM SYS.ALL_TABLES ' ||
          ' WHERE OWNER = ''MDSYS'' AND TABLE_NAME = ''RDF_MODEL$'' ';
  EXECUTE IMMEDIATE stmt INTO cnt;
  if (cnt = 1) then
  begin
    cnt := 0;
    stmt := 'SELECT count(*) FROM MDSYS.RDF_MODEL$ ' ||
            ' WHERE OWNER = :1 AND TABLE_NAME = :2';
    begin
      EXECUTE IMMEDIATE stmt INTO cnt USING sys.dbms_standard.dictionary_obj_owner,
                                            sys.dbms_standard.dictionary_obj_name;
    exception
      when e_cannot_multi_mod then
        if (substr(sys.dbms_standard.dictionary_obj_name, 1, 4)='BIN$') then
          return;
        else
          raise;
        end if;
    end;
 
    if (cnt > 0)  then
      stmt := 'SELECT model_name, model_id FROM MDSYS.RDF_MODEL$ ' ||
            ' WHERE OWNER = :1 AND TABLE_NAME = :2';
       begin
         EXECUTE IMMEDIATE stmt INTO model, m_id USING sys.dbms_standard.dictionary_obj_owner,
                                                       sys.dbms_standard.dictionary_obj_name;
       exception
        when e_cannot_multi_mod then
          if (substr(sys.dbms_standard.dictionary_obj_name, 1, 4)='BIN$') then
            return;
          else
            raise;
          end if;
       end;

       begin
         EXECUTE IMMEDIATE 
            'BEGIN MDSYS.RDF_APIS_INTERNAL.NOTIFY_MODEL_DML(:1, ''DEL''); END;' using model;
       exception
        when others then
          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                 'EXCEPTION[sdoe102.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
       end;

       stmt := ' DELETE  MDSYS.RDF_LINK$ WHERE  model_id = '||sdo_util.number_to_char(m_id) ;
       EXECUTE IMMEDIATE stmt;
    end if;
      
     exception
        when others then
          SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                 'EXCEPTION[sdoe102.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
  end;

  end if;
  
END;
/
SHOW ERRORS;


--
-- For NDM
--

--
-- NDM PL/SQL Wrapper object type downgrade
-- 


--
-- drop the whole type as they are not only used in sdonet_mem package
-- downgrade will load/create these types with scripts of downgraded version
--

DECLARE
BEGIN

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NETWORK_MANAGER_I FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NETWORK_MANAGER_T FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NETWORK_I FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NETWORK_T FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NODE_I FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_NODE_T FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_LINK_I FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_LINK_T FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_PATH_I FORCE';

  EXECUTE IMMEDIATE
  ' DROP TYPE MDSYS.SDO_PATH_T FORCE';

  EXCEPTION
    WHEN OTHERS THEN
      SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                             'EXCEPTION[sdoe102.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
 
END;
/
SHOW ERRORS;


-- drop sdo_net_partition synonym package

DROP TYPE MDSYS.NDM_VECTOR_2D;
DROP PUBLIC SYNONYM SDO_NET_PARTITION;
DROP PACKAGE MDSYS.SDO_NET_PARTITION; 
drop package MDSYS.SDO_ROUTER_PARTITION;
drop procedure MDSYS.ELOCATIONSETJVMHEAPSIZE;

drop trigger MDSYS.SDO_NETWORK_CONS_DROP_TRIG;
drop trigger MDSYS.SDO_NETWORK_CONS_INS_TRIG;
drop trigger MDSYS.SDO_NETWORK_CONS_DEL_TRIG;
drop trigger MDSYS.SDO_NETWORK_CONS_UPD_TRIG;
drop trigger MDSYS.SDO_NETWORK_LOCKS_DROP_TRIG;
drop trigger MDSYS.SDO_NETWORK_LOCKS_INS_TRIG;
drop trigger MDSYS.SDO_NETWORK_LOCKS_DEL_TRIG;
drop trigger MDSYS.SDO_NETWORK_LOCKS_UPD_TRIG;
drop trigger MDSYS.SDO_NETWORK_UD_DROP_TRIG;
drop trigger MDSYS.SDO_NETWORK_UD_INS_TRIG;
drop trigger MDSYS.SDO_NETWORK_UD_DEL_TRIG;
drop trigger MDSYS.SDO_NETWORK_UD_UPD_TRIG;
drop trigger MDSYS.SDO_ST_SYN_CREATE;

--RDF section
@@seme102.sql
 
ALTER SESSION SET CURRENT_SCHEMA = SYS;

EXECUTE dbms_registry.downgraded('SDO', '10.2.0');
commit;

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


OHA YOOOO