MINI MINI MANI MO

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

Rem
Rem $Header: sdo/admin/sdows.sql /main/21 2017/05/26 16:34:19 rjanders Exp $
Rem
Rem sdows.sql
Rem
Rem Copyright (c) 2005, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdows.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/sdows.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdows.sql
Rem    SQL_PHASE: SDOWS
Rem    SQL_STARTUP_MODE: NORMAL
Rem    SQL_IGNORABLE_ERRORS: NONE
Rem    SQL_CALLING_FILE: sdo/admin/catmdsdop1.sql
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
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     01/11/17 - bug 25370681
Rem    sravada     06/02/16 - remove alter package
Rem    rjanders    01/02/15 - long identifier project phase 1
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    hgong       10/14/10 - move sdowso to catmd10i
Rem    mhorhamm    05/05/08 - Do not partition OLS_DIR_BUSINESSES
Rem    sravada     02/14/08 - add exception handles
Rem    mhorhamm    03/29/07 - Partitioning might not be selected
Rem    mhorhamm    03/13/07 - Move some statements to sdows2.sql
Rem    mhorhamm    03/08/07 - Add node
Rem    mhorhamm    02/27/07 - Shorten trigger and column names, for compatibility with
Rem                           Workspace manager
Rem    mhorhamm    01/12/07 - app user-related roles not required, any more
Rem    mhorhamm    01/08/07 - Create trigger for business table to make sure
Rem                           businesses are geocoded
Rem    mhorhamm    10/11/06 - Add table
Rem    mhorhamm    10/09/06 - Change column type
Rem    mhorhamm    10/06/06 - Add grant
Rem    mhorhamm    10/05/06 - Add table for conference requests
Rem    mhorhamm    09/22/06 - Add roles determining whether a user allows proxy
Rem                           authentication or app user mgm
Rem    mhorhamm    08/21/06 - Rearrange and add drops of tables
Rem    mhorhamm    08/07/06 - Move config to test file
Rem    mhorhamm    08/04/06 - Config ACL
Rem    mhorhamm    05/31/06 - Change MapViewer URL 
Rem    mhorhamm    03/07/06 - Load plb files, instead of sql 
Rem    mhorhamm    03/02/06 - Move user creation to test scripts 
Rem    mhorhamm    03/01/06 - Partition businesses table 
Rem    mhorhamm    01/27/06 - Use MDSYS, instead of spatial_ws_proxy 
Rem    mhorhamm    01/25/06 - Alter YP structure 
Rem    mhorhamm    01/17/06 - First drop user 
Rem    mhorhamm    12/29/05 - Add column to OpenLS YP tables
Rem    mhorhamm    12/27/05 - Drop one of the WS users
Rem    mhorhamm    11/21/05 - Add Application User Management 
Rem    mhorhamm    11/07/05 - Add guest user for SpatialWS 
Rem    mhorhamm    09/28/05 - Change Router IP 
Rem    mhorhamm    08/30/05 - Drop objects, first 
Rem    mhorhamm    05/18/05 - Formalize the geocoder and yp being on localhost 
Rem    mhorhamm    05/17/05 - Return exception as OpenLS error 
Rem    mhorhamm    03/28/05 - Created
Rem

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

SELECT 'Spatial WS ...' "Msg" FROM SYS.DUAL;

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- OpenLS schema ---------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

SELECT 'OpenLS schema' "Msg" FROM SYS.DUAL;

alter session set current_schema=mdsys;

declare
begin
   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_SYNONYMS';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_CATEGORIZATIONS';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_BUSINESSES';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_CATEGORIES';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_CATEGORY_TYPES';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OLS_DIR_BUSINESS_CHAINS';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OpenLS_Namespaces';
    exception
      when others then return;
   end;

   begin
     execute immediate 
 ' drop TABLE mdsys.OpenLS_Classifications';
    exception
      when others then return;
   end;

   begin
     execute immediate
 ' drop TABLE mdsys.OpenLS_XPaths';
    exception
      when others then return;
   end;

   begin
     execute immediate
 ' drop TABLE mdsys.OpenLS_Nodes';
    exception
      when others then return;
   end;

   begin
     execute immediate
 ' drop TABLE mdsys.OpenLSServices';
    exception
      when others then return;
   end;
end;
/



declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OPENLSSERVICES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE mdsys.OpenLSServices (
  SERVICE   VARCHAR2(32) NOT NULL UNIQUE
              CONSTRAINT OpenLSServiceDomain CHECK(
                SERVICE IN (
                  ''Location Utility Service'',
                  ''Presentation Service'',
                  ''Route Service'',
                  ''Directory Service'')),
  URL       VARCHAR2(128),
  VERSION   VARCHAR2(16) NOT NULL)';
    execute immediate stm;
  end if;
end;
/
SHOW ERRORS

begin
  execute immediate
 ' alter table mdsys.OpenLSServices
   modify ( SERVICE   VARCHAR2(130) ) ';
  exception
    when others then
      SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
        'alter table mdsys.OpenLSServices ERROR=' || SQLERRM);
end;
/
SHOW ERRORS

INSERT INTO mdsys.OpenLSServices (SERVICE, URL, VERSION) VALUES ('Location Utility Service', 'http://localhost', '1.0');
INSERT INTO mdsys.OpenLSServices (SERVICE, URL, VERSION) VALUES ('Presentation Service',     'http://some.server:7777/mapviewer/omserver', '1.0');
INSERT INTO mdsys.OpenLSServices (SERVICE, URL, VERSION) VALUES ('Route Service',            'http://some.server:7777/routeserver/servlet/RouteServerServlet', '1.0');
INSERT INTO mdsys.OpenLSServices (SERVICE, URL, VERSION) VALUES ('Directory Service',        'http://localhost', '1.0');

--------------------------------------------------------------------------------

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OPENLS_NODES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE mdsys.OpenLS_Nodes (
  name    VARCHAR2(32)   NOT NULL,
  version VARCHAR2(32)   NOT NULL,
  OpenLS  XMLTYPE        NOT NULL)';
    execute immediate stm;
  end if;
end;
/
SHOW ERRORS

begin
  execute immediate
 ' alter table mdsys.OpenLS_Nodes
   modify ( name VARCHAR2(130)) ';
    exception
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
          'alter table mdsys.OpenLS_Nodes ERROR=' || SQLERRM);
end;
/
SHOW ERRORS

ALTER TABLE mdsys.OpenLS_Nodes ADD (CONSTRAINT OpenLS_Nodes_Prim PRIMARY KEY(name, version) USING INDEX);

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OPENLS_XPATHS';
  if(rec_count = 0) then
    stm := '
CREATE TABLE mdsys.OpenLS_XPaths (
  name    VARCHAR2(32)   NOT NULL,
  version VARCHAR2(32)   NOT NULL,
  XPath   VARCHAR2(1024) NOT NULL)';
    execute immediate stm;
  end if;
end;
/
SHOW ERRORS

begin
  execute immediate 
 ' alter table mdsys.OpenLS_XPaths
   modify ( name VARCHAR2(130)) ';
    exception
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
          'alter table mdsys.OpenLS_XPaths ERROR=' || SQLERRM);
end;
/
SHOW ERRORS

ALTER TABLE mdsys.OpenLS_XPaths ADD (CONSTRAINT OpenLS_Paths_Prim PRIMARY KEY(name, version) USING INDEX);

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OPENLS_CLASSIFICATIONS';
  if(rec_count = 0) then
    stm := '
CREATE TABLE mdsys.OpenLS_Classifications (
  criterion             VARCHAR2(32)   NOT NULL,
  classification        VARCHAR2(32)   NOT NULL,
  version               VARCHAR2(32)   NOT NULL,
  characteristic_XPath  VARCHAR2(1024) NOT NULL)';
    execute immediate stm;
  end if;
end;
/

ALTER TABLE mdsys.OpenLS_Classifications ADD (CONSTRAINT OpenLS_Cl_Prim PRIMARY KEY(criterion, classification, version) USING INDEX);

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OPENLS_NAMESPACES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE mdsys.OpenLS_Namespaces(
  shortcut  VARCHAR2(8),
  version   VARCHAR2(32),
  uri       VARCHAR2(4000))';
    execute immediate stm;
  end if;
end;
/

ALTER TABLE mdsys.OpenLS_Namespaces ADD (CONSTRAINT OpenLS_Na_Prim PRIMARY KEY(shortcut, version) USING INDEX);

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- OpenLS package defs ---------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

SELECT 'OpenLS package defs' "Msg" FROM SYS.DUAL;

--@@sdowso.sql
@@sdowsog.sql
@@sdowsom.sql
@@sdowsor.sql
@@sdowsoy.sql
-- @@sdowss.sql

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- OpenLS-directory-related ----------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

SELECT 'OpenLS-directory-related' "Msg" FROM SYS.DUAL;

--host imp system/manager fromuser=OpenLSYP touser=OpenLSYP file=tmdwsolsdir.dmp

-- Create empty tables ---------------------------------------------------------

-- Business chains, such as McDonald's
declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_BUSINESS_CHAINS';
  if(rec_count = 0) then
    stm := '
create table ols_dir_business_chains (
  chain_id   number         primary key,
  chain_name varchar2(128))';
    execute immediate stm;
  end if;
end;
/

-- categorization systems such as NAICS or SIC:
declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_CATEGORY_TYPES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE OLS_DIR_CATEGORY_TYPES (
  CATEGORY_TYPE_ID    NUMBER                    PRIMARY KEY,
  CATEGORY_TYPE_NAME  VARCHAR2(128)             NOT NULL,
  PARAMETERS          XMLTYPE)';
    execute immediate stm;
  end if;
end;
/

-- categories, such as "Chinese Restaurants":
declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_CATEGORIES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE OLS_DIR_CATEGORIES (
  CATEGORY_ID         VARCHAR2(32)              NOT NULL,
  CATEGORY_TYPE_ID    NUMBER                    NOT NULL,
  CATEGORY_NAME       VARCHAR2(128)             NOT NULL,
  PARENT_ID           VARCHAR2(32),
  PARAMETERS          XMLTYPE,
  PRIMARY KEY (CATEGORY_ID, CATEGORY_TYPE_ID),
  constraint olsfk1 FOREIGN KEY (PARENT_ID, CATEGORY_TYPE_ID) REFERENCES OLS_DIR_CATEGORIES(CATEGORY_ID, CATEGORY_TYPE_ID),
  constraint olsfk2 FOREIGN KEY (CATEGORY_TYPE_ID) REFERENCES OLS_DIR_CATEGORY_TYPES(CATEGORY_TYPE_ID))';
    execute immediate stm;
  end if;
end;
/

-- actual businesses:

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_BUSINESSES';
  if(rec_count = 0) then
    stm := '
CREATE TABLE OLS_DIR_BUSINESSES (
  BUSINESS_ID                   NUMBER                    PRIMARY KEY,
  BUSINESS_NAME                 VARCHAR2(128)             NOT NULL,
  CHAIN_ID                      NUMBER,
  DESCRIPTION                   VARCHAR2(1024),
  PHONE                         VARCHAR2(64),
  COUNTRY                       VARCHAR2(64)              NOT NULL,
  Country_Subdivision           VARCHAR2(128),
  Country_Secondary_Subdiv      VARCHAR2(128),
  Municipality                  VARCHAR2(128),
  Municipality_Subdivision      VARCHAR2(128),
  POSTAL_CODE                   VARCHAR2(32)              NOT NULL,
  POSTAL_CODE_EXT               VARCHAR2(32),
  STREET                        VARCHAR2(128)             NOT NULL,
  INTERSECTING_STREET           VARCHAR2(128),
  BUILDING                      VARCHAR2(64),
  PARAMETERS                    XMLTYPE,
  GEOM                          MDSYS.SDO_GEOMETRY,
  constraint olsfk3 FOREIGN KEY (CHAIN_ID)
    REFERENCES ols_dir_business_chains(CHAIN_ID))';
    execute immediate stm;
  end if;
end;
/

alter session set events '14524 trace name context off';

-- categorizations: N:M mappings between businesses and categories:
declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_CATEGORIZATIONS';
  if(rec_count = 0) then
    stm := '
CREATE TABLE OLS_DIR_CATEGORIZATIONS (
  BUSINESS_ID         NUMBER,
  CATEGORY_ID         VARCHAR2(32),
  CATEGORY_TYPE_ID    NUMBER,
  CATEGORIZATION_TYPE VARCHAR2(8) DEFAULT ''EXPLICIT'',
  USER_SPECIFIC_CATEG VARCHAR2(32) DEFAULT NULL,
  PARAMETERS          XMLTYPE,
  CONSTRAINT olspk1 PRIMARY KEY(business_id, category_id, category_type_id) USING INDEX,
  CONSTRAINT CAT_TYPE_CONSTR CHECK(CATEGORIZATION_TYPE IN (''EXPLICIT'', ''IMPLICIT'')),
--  constraint olsfk4 FOREIGN KEY (BUSINESS_ID) REFERENCES OLS_DIR_BUSINESSES(BUSINESS_ID),
  constraint olsfk5 FOREIGN KEY (CATEGORY_ID, CATEGORY_TYPE_ID) REFERENCES
    OLS_DIR_CATEGORIES(CATEGORY_ID, CATEGORY_TYPE_ID))';
    execute immediate stm;
  end if;
end;
/

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'OLS_DIR_SYNONYMS';
  if(rec_count = 0) then
    stm := '
CREATE TABLE OLS_DIR_SYNONYMS (
  standard_name VARCHAR2(128),
  category      VARCHAR2(128),
  aka           VARCHAR2(128))';
    execute immediate stm;
  end if;
end;
/

INSERT INTO OLS_DIR_CATEGORY_TYPES (
  CATEGORY_TYPE_ID,
  CATEGORY_TYPE_NAME)
VALUES (
  1,
  'SIC');

INSERT INTO OLS_DIR_CATEGORY_TYPES (
  CATEGORY_TYPE_ID,
  CATEGORY_TYPE_NAME)
VALUES (
  2,
  'NAICS');

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- OpenLS package bodies -------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

SELECT 'OpenLS package bodies' "Msg" FROM SYS.DUAL;

@@prvtwso.plb
@@prvtwsog.plb
@@prvtwsom.plb
@@prvtwsor.plb
@@prvtwsoy.plb
-- @@prvtwss.plb

show errors;
-- alter package SDO_OLS               compile body;
show errors;
-- alter package SDO_OLS_LOCUTL        compile body;
show errors;
-- alter package SDO_OLS_PRESENTATION  compile body;
show errors;
-- alter package SDO_OLS_ROUTE         compile body;
show errors;
-- alter package SDO_OLS_DIRECTORY     compile body;
show errors;

alter session set current_schema=mdsys;

SELECT 'Spatial WS finished' "Msg" FROM SYS.DUAL;

COMMIT;

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Conference-related ----------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'SDO_WS_CONFERENCE';
  if(rec_count = 0) then
    stm := '
create table mdsys.sdo_ws_conference (
  conference_id  varchar2(128) not null,
  request        xmltype       not null,
    constraint sdo_ws_conf_pk primary key (conference_id))';
    execute immediate stm;
  end if;
end;
/

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'SDO_WS_CONFERENCE_RESULTS';
  if(rec_count = 0) then
    stm := '
create table mdsys.sdo_ws_conference_results (
  conference_id  varchar2(128) not null,
  result         xmltype       not null,
    constraint sdo_ws_conf_res__pk primary key (conference_id))';
    execute immediate stm;
  end if;
end;
/

declare
  stm VARCHAR2(10000);
  rec_count NUMBER;
begin
  select count(*) into rec_count from SYS.ALL_TABLES where owner = 'MDSYS' and table_name = 'SDO_WS_CONFERENCE_PARTICIPANTS';
  if(rec_count = 0) then
    stm := '
create table mdsys.sdo_ws_conference_participants (
  conference_id  varchar2(128) not null,
  participant    varchar2(128) not null,
  has_approved   number        not null,
    constraint sdo_ws_conf_part_pk primary key (conference_id, participant),
    constraint sdo_ws_conf_part_fk foreign key (conference_id) references mdsys.sdo_ws_conference(conference_id))';
    execute immediate stm;
  end if;
end;
/

declare
  already_exists exception;
  pragma exception_init(already_exists, -00955);
begin
  begin
    execute immediate 
  'create sequence mdsys.sdo_ws_conference_ids start with 1 nocache';
    exception
      when already_exists then NULL;
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                               'EXCEPTION[sdows.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
  end;
end;
/


grant select on mdsys.sdo_ws_conference_ids to public;
grant select, insert, update, delete on mdsys.sdo_ws_conference to public;
grant select, insert, update, delete on mdsys.sdo_ws_conference_results to public;
grant select, insert, update, delete on mdsys.sdo_ws_conference_participants to public;

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


OHA YOOOO