MINI MINI MANI MO

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

Rem Copyright (c) 1998, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      relate.sql - <one-line expansion of the name>
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/relate.sql
Rem    SQL_SHIPPED_FILE: md/admin/relate.sql
Rem    SQL_PHASE: RELATE
Rem    SQL_STARTUP_MODE: NORMAL
Rem    SQL_IGNORABLE_ERRORS: NONE
Rem    SQL_CALLING_FILE: sdo/admin/catmdlocp2.sql
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    rjanders    10/08/17 - Add MDSYS to spatial type
Rem    rjanders    05/10/17 - #26037683: Raise 'when other' exceptions
Rem    rjanders    03/23/17 - #25437999: Remove 'when others then NULL'
Rem                           handlers
Rem    rjanders    03/09/17 - Add missing SQL_FILE_METADATA information
Rem    sravada     12/09/16 - remove sdo_relate_mask
Rem    rjanders    02/01/15 - #20418139: Cannot grant SELECT to PUBLIC
Rem    rjanders    01/02/15 - long identifier project phase 1
Rem    rjanders    09/16/13 - OCCS: Remove hardtabs
Rem    rjanders    03/16/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    yhu         08/29/11 - add more masks
Rem    yhu         07/26/11 - add 100011001 for covers
Rem    yhu         04/18/11 - rollback changes to point masks.
Rem    yhu         04/12/11 - change 000100111 from TOUCH to ON
Rem    yhu         06/25/10 - bug 9853256: add more masks in mdmask_array
Rem    sravada     12/19/06 - bug 5700474
Rem    sravada     02/14/06 - ad two new masks for lines with no boundary 
Rem    sravada     07/29/04 - add exception handlers 
Rem    sravada     12/12/03 - bug 3270382 
Rem    sravada     09/04/02 - bug 2479348
Rem    jsharma     09/16/98 - Do not drop table
Rem    gvincent    08/24/98 - fix invoker rights
Rem    ranwei      05/14/98 - Add masks for Arc/Composite types
Rem    pfwang      04/16/98 - Change synonym sdo_relate to sdo_relate_table
Rem    pfwang      04/09/98 - Add function package to control modifications
Rem    ranwei      04/06/98 - Add masks for Arc types
Rem    pfwang      03/31/98 - drop table first
Rem    pfwang      01/19/98 - Relate mask versus name lookup table
Rem    pfwang      01/19/98 - Created
Rem
Rem
Rem ###########################################################################
Rem #                                                                         #
Rem # Notes: If there are any changes made to md$relate, please make          #
Rem #        corresponding changes to mdmask_array in mdidx.c                 #
Rem #                                                                         #
Rem ###########################################################################

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

declare
  table_not_found exception;
  pragma exception_init(table_not_found, -00942);
begin
  begin
    execute immediate 
    ' drop table mdsys.md$relate';
   exception
     when table_not_found then NULL;
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[relate.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
  end;
end;
/

-- sdo_relation is the relationship not the relation name
create table mdsys.md$relate (
        sdo_mask   char(9) CONSTRAINT pk_sdo_mask PRIMARY KEY,
        sdo_relation varchar2(30),
        definer      varchar2(128)
);

declare
 cnt integer;
begin 
  cnt := 0;
  select count(*) into cnt from mdsys.md$relate;
  if cnt = 0 then 
insert into mdsys.md$relate values ('000011011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('010111111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('011111011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('011111111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('001011111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('001111011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('001111111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('010011111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('010111011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('011011111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('010110001', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('001011011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('000011111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('011011011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('000111111', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('000111011', 'OVERLAPBDYDISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('010011011', 'OVERLAPBDYDISJOINT', 'MDSYS');

insert into mdsys.md$relate values ('110111111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('111111011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('111111111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('100011011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('101011111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('101111011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('110011111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('110111011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('100011111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('100111011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('100111111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('101011011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('101111111', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('110011011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('111011011', 'OVERLAPBDYINTERSECT', 'MDSYS');
insert into mdsys.md$relate values ('111011111', 'OVERLAPBDYINTERSECT', 'MDSYS');

insert into mdsys.md$relate values ('100001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('101001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('101001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('001101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('001101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('010001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('010101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('010101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('011001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('011101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('011101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('100001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('101101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('110001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('110101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('100101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('100101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('101101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('110001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('110101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111001111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('010001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('000101011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('011001011', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('000101111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111001001', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('010001001', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('011001001', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('110100111', 'TOUCH', 'MDSYS');
insert into mdsys.md$relate values ('111101001', 'TOUCH', 'MDSYS');

insert into mdsys.md$relate values ('100111001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('101111001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('101011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('011111001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('111011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('111111001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('011011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('100011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('010011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('010111001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('110011001', 'COVERS', 'MDSYS');
insert into mdsys.md$relate values ('110111001', 'COVERS', 'MDSYS');

insert into mdsys.md$relate values ('110010011', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('110010111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('100010111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('110110111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('010110111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('100110111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('000110111', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('100010011', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('000110011', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('010110011', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('100110011', 'COVEREDBY', 'MDSYS');
insert into mdsys.md$relate values ('110110011', 'COVEREDBY', 'MDSYS');

insert into mdsys.md$relate values ('001111001', 'CONTAINS', 'MDSYS');
insert into mdsys.md$relate values ('001011001', 'CONTAINS', 'MDSYS');
insert into mdsys.md$relate values ('000111001', 'CONTAINS', 'MDSYS');
insert into mdsys.md$relate values ('000011001', 'CONTAINS', 'MDSYS');

insert into mdsys.md$relate values ('010010111', 'INSIDE', 'MDSYS');
insert into mdsys.md$relate values ('000010111', 'INSIDE', 'MDSYS');
insert into mdsys.md$relate values ('010010011', 'INSIDE', 'MDSYS');
insert into mdsys.md$relate values ('000010011', 'INSIDE', 'MDSYS');

insert into mdsys.md$relate values ('001001111', 'DISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('001001011', 'DISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('000001011', 'DISJOINT', 'MDSYS');
insert into mdsys.md$relate values ('000001111', 'DISJOINT', 'MDSYS');

insert into mdsys.md$relate values ('100010001', 'EQUAL', 'MDSYS');
insert into mdsys.md$relate values ('000010001', 'EQUAL', 'MDSYS');

insert into mdsys.md$relate values ('100100111', 'ON', 'MDSYS');
insert into mdsys.md$relate values ('000100011', 'ON', 'MDSYS');
insert into mdsys.md$relate values ('000100111', 'ON', 'MDSYS');
end if;
end;
/

create or replace view mdsys.sdo_relatemask_table 
as select sdo_mask, sdo_relation from mdsys.md$relate;
-- drop public synonym sdo_relatemask_table;
create or replace  public synonym 
sdo_relatemask_table for mdsys.sdo_relatemask_table;
grant read on mdsys.sdo_relatemask_table to public;
commit;

declare
begin

  begin
   execute immediate ' drop package mdsys.sdo_relate_mask ';
   exception
     when others then
       if ( (SQLCODE = '-4043') ) then
         NULL;
       end if; 
  end;

  begin
   execute immediate ' drop public synonym sdo_relate_mask ';
   exception
     when others then
       if ( (SQLCODE = '-4043') ) then
         NULL;
       end if; 
  end;
end;
/



/*
create or replace package mdsys.sdo_relate_mask authid definer as
procedure insert_mask(mask      in varchar2,
                 relation  in varchar2);

procedure update_mask(mask      in varchar2,
                 relation  in varchar2);

procedure delete_mask(mask      in varchar2);
end sdo_relate_mask;
/
show errors;

create or replace package body mdsys.sdo_relate_mask as
procedure insert_mask(mask      in varchar2,
                      relation  in varchar2) is
begin
  insert into mdsys.md$relate values(mask,nls_upper(relation),user);
  commit;
end insert_mask;

procedure update_mask(mask      in varchar2,
                 relation  in varchar2) is
owner varchar2(128);
begin
  select definer into owner from mdsys.md$relate where sdo_mask=mask;
  if (owner <> user) then
    mderr.raise_md_error('MD','SDO',-13108,'Not definer');
         return;
  end if;
  update mdsys.md$relate set sdo_relation=nls_upper(relation) where sdo_mask=mask;
  commit;
end update_mask;

procedure delete_mask(mask      in varchar2) is
owner varchar2(128);
begin
  select definer into owner from mdsys.md$relate where sdo_mask=mask;
  if (owner <> user) then
    mderr.raise_md_error('MD','SDO',-13108,'Not definer');
         return;
  end if;
  delete from mdsys.md$relate where sdo_mask=mask;
  commit;
end delete_mask;
end sdo_relate_mask;
/
show errors;

grant execute on mdsys.sdo_relate_mask to public;
create or replace   public synonym sdo_relate_mask for mdsys.sdo_relate_mask;

*/

commit;

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


OHA YOOOO