MINI MINI MANI MO
Rem
Rem $Header: sdo/admin/sdotptyp.sql /main/43 2017/11/01 16:48:27 sravada Exp $
Rem
Rem sdotptyp.sql
Rem
Rem Copyright (c) 2002, 2017, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem sdotptyp.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/sdotptyp.sql
Rem SQL_SHIPPED_FILE: md/admin/sdotptyp.sql
Rem SQL_PHASE: SDOTPTYP
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: sdo/admin/catmdloch.sql
Rem END SQL_FILE_METADATA
Rem
Rem MODIFIED (MM/DD/YY)
Rem sravada 11/01/17 - fix prefix issues; revert changes
Rem sravada 07/19/17 - fix lrg 20376201 additional conditions
Rem sravada 06/12/17 - lrg 20376201
Rem sravada 06/05/17 - add more NULL exceptions for upgrade
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 03/30/16 - bug 22934548
Rem rjanders 11/20/15 - #21930978: Correct SDO_Topo_Geometry_Layer defn
Rem rjanders 09/16/15 - #21825604: Remove WITH GRANT OPTION from PUBLIC
Rem rjanders 03/05/15 - long identifier project phase 4
Rem rjanders 01/02/15 - long identifier project phase 1
Rem rjanders 03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem initialization
Rem sravada 10/15/12 - add SDO_Topo_Geometry_Layer_Table
Rem sravada 03/19/09 - increase sdo_topo_object_array to 10000000
Rem sravada 06/05/07 - increate the sdo_topo_object_array limit
Rem bgouslin 01/07/07 - New version to fix Windoze format issue caused by
Rem some ADE bug
Rem sravada 01/11/06 - support user specified TG_IDs
Rem sravada 07/29/04 - add exception handlers
Rem sravada 05/27/04 - fix alter type
Rem sravada 04/26/04 - add get_tg_objects
Rem sravada 12/19/03 - add get_topo_elements
Rem ningan 11/21/03 - add SDO_TOPO_NSTD_TBL
Rem sravada 08/12/03 - add hierarchy level
Rem fjlee 07/28/03 - Add non-persistent type SDO_EDGE_ARRAY
Rem sravada 07/22/03 - define default constructor
Rem sravada 06/10/03 - increase the sdo_list_tye size
Rem sravada 06/05/03 - add constructors with add/delete topo_ids
Rem sravada 04/15/03 - add tg_layer name sig for topo_goem constructor
Rem rkothuri 01/04/03 - grant execute with grant option
Rem sravada 11/18/02 - update type
Rem sravada 10/31/02 - change feature to topo_geometry
Rem sravada 10/03/02 - move body to prvtptyp
Rem sravada 08/06/02 - add OID for topo_object_array
Rem sravada 08/01/02 - add OID for list type
Rem sravada 07/29/02 - add layer feature type
Rem sravada 07/23/02 - add get_geometry
Rem sravada 07/19/02 - sravada_topo_metadata_views
Rem sravada 07/17/02 - Created
Rem
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@@?/rdbms/admin/sqlsessstart.sql
Rem ********************************************************************
Rem select to_char(systimestamp, 'YYYY-MM-DD:HH24:MI:SS') from SYS.DUAL;
Rem select sys_op_guid() from SYS.DUAL;
declare
evolved_type exception;
pragma exception_init(evolved_type, -22308);
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
begin
begin
execute immediate
' Create or Replace Type SDO_Topo_Geometry_Layer
TIMESTAMP ''2002-07-17:16:42:35''
OID ''A5FEBA741CE21F61E034080020F7892A''
as object (
OWNER varchar2(64),
Table_Name varchar2(64),
Column_Name varchar2(32),
Layer_id number,
Layer_Type VARCHAR2(10),
Layer_Level number,
Child_Layer_id number) ';
exception
when evolved_type then NULL;
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
grant execute on MDSYS.SDO_Topo_Geometry_Layer to public;
create or replace public synonym SDO_Topo_Geometry_Layer for
MDSYS.SDO_Topo_Geometry_Layer;
declare
evolved_type exception;
pragma exception_init(evolved_type, -22308);
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
begin
begin
execute immediate
'Create or Replace Type SDO_Topo_Geometry_Layer_Array
TIMESTAMP ''2002-07-17:16:45:41''
OID ''A5FEBA741CE71F61E034080020F7892A''
as VARRAY (1000) of SDO_Topo_Geometry_Layer ';
exception
when evolved_type then NULL;
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_Topo_Geometry_Layer_Array
to public;
create or replace public synonym SDO_Topo_Geometry_Layer_Array for
MDSYS.SDO_Topo_Geometry_Layer_Array;
declare
evolved_type exception;
pragma exception_init(evolved_type, -22308);
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
begin
begin
execute immediate
'Create or Replace Type MDSYS.SDO_Topo_Geometry_Layer_Table
TIMESTAMP ''2012-10-11:15:55:35''
OID ''CBCEF1BC89026A2AE0435B72E50A1189''
as table of MDSYS.SDO_Topo_Geometry_Layer ';
exception
when evolved_type then NULL;
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_Topo_Geometry_Layer_Table to public;
create or replace public synonym SDO_Topo_Geometry_Layer_Table
for MDSYS.SDO_Topo_Geometry_Layer_Table;
declare
compilation_error exception;
pragma exception_init(compilation_error, -22324);
begin
execute immediate
'alter type SDO_Topo_Geometry_Layer modify attribute (OWNER varchar2(130), Table_Name varchar2(256), Column_Name varchar2(130)) cascade including table data ';
exception
when compilation_error then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
end;
/
SHOW ERRORS
-- this type is persistent, so OID required
declare
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
begin
begin
execute immediate
'Create or replace type SDO_List_Type
TIMESTAMP ''2002-08-01:09:48:24''
OID ''A726BA71528E371AE034080020F7892A''
as VARRAY (2147483647) of Number ';
exception
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_List_Type to public;
create or replace public synonym SDO_List_Type for MDSYS.SDO_List_Type;
-- this object is not persistent object, so no OID required
declare
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
begin
begin
execute immediate
' Create or replace type SDO_TOPO_OBJECT
as Object (topo_id number, topo_type number) ';
exception
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_TOPO_OBJECT to public;
create or replace public synonym SDO_TOPO_OBJECT for MDSYS.SDO_TOPO_OBJECT;
-- making it persistent
declare
begin
begin
execute immediate
' CREATE OR REPLACE TYPE SDO_TOPO_NSTD_TBL
TIMESTAMP ''2003-12-25:09:11:08''
OID ''CF5072A2CF3A0E54E034080020B7ADF6''
AS TABLE OF NUMBER ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM); RAISE;
end;
end;
/
GRANT EXECUTE ON MDSYS.SDO_TOPO_NSTD_TBL TO PUBLIC;
CREATE OR REPLACE PUBLIC SYNONYM SDO_TOPO_NSTD_TBL FOR MDSYS.SDO_TOPO_NSTD_TBL;
-- this object is not persistent object, so no OID required
declare
name_exists exception;
pragma exception_init(name_exists, -00955);
begin
begin
execute immediate
'create type SDO_TGL_OBJECT
as Object (tgl_id number, tg_id number) ';
exception
when name_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')8]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_TGL_OBJECT to public;
create or replace public synonym SDO_TGL_OBJECT for MDSYS.SDO_TGL_OBJECT;
-- this object is not persistent object, so no OID required
declare
begin
begin
execute immediate
'Create or replace type SDO_EDGE_ARRAY
as VARRAY(1000000) of SDO_NUMBER_ARRAY ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')9]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_EDGE_ARRAY to public;
create or replace public synonym SDO_EDGE_ARRAY for MDSYS.SDO_EDGE_ARRAY;
declare
evolved_type exception;
pragma exception_init(evolved_type, -22308);
compilation_error exception;
pragma exception_init(compilation_error, -22324);
begin
begin
execute immediate
' Create or replace type SDO_TOPO_OBJECT_ARRAY
OID ''A6EAE6CBDFFC1E41E034080020F7892A''
as VARRAY (1000000) of SDO_TOPO_OBJECT ';
exception
when evolved_type then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')10]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter type SDO_TOPO_OBJECT_ARRAY modify limit 10000000';
exception
when compilation_error then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')11]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_TOPO_OBJECT_ARRAY to public;
create or replace public synonym SDO_TOPO_OBJECT_ARRAY for
MDSYS.SDO_TOPO_OBJECT_ARRAY;
declare
evolved_type exception;
pragma exception_init(evolved_type, -22308);
begin
begin
execute immediate
' Create or replace type SDO_TGL_OBJECT_ARRAY
OID ''C4B7F989E25A1414E034080020F7892A''
as VARRAY (1000000) of SDO_TGL_OBJECT ';
exception
when evolved_type then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')12]: ' || SQLERRM); RAISE;
end;
end;
/
declare
compilation_error exception;
pragma exception_init(compilation_error, -22324);
begin
begin
execute immediate
' alter type SDO_TGL_OBJECT_ARRAY modify limit 10000000 cascade';
exception
when compilation_error then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')13]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on MDSYS.SDO_TGL_OBJECT_ARRAY to public;
create or replace public synonym SDO_TGL_OBJECT_ARRAY for
MDSYS.SDO_TGL_OBJECT_ARRAY;
-- the default type constructor returns a valid object only
-- the fid is already there in the topology_relation table
-- user defined constructor has only topolgy name as the input
-- the feature id is generated as part of the constructor by reading
-- the topo metadata and getting the sequence name
declare
dependent_objects exception;
pragma exception_init(dependent_objects, -02303);
compilation_error exception;
pragma exception_init(compilation_error, -22324);
begin
begin
execute immediate
'Create or Replace Type SDO_Topo_Geometry
TIMESTAMP ''2002-07-17:16:54:47''
OID ''A5FEBA741CEB1F61E034080020F7892A''
AUTHID current_user as Object
(TG_Type NUMBER,
TG_ID NUMBER,
TG_Layer_ID NUMBER,
Topology_ID NUMBER,
Constructor Function SDO_Topo_Geometry(TG_Type number,
TG_id NUMBER,
TG_layer_id NUMBER,
Topology_ID NUMBER)
return SELF as RESULT DETERMINISTIC,
Constructor Function SDO_Topo_Geometry(topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
Constructor Function SDO_Topo_Geometry(topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
Constructor Function SDO_Topo_Geometry(topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
add_Topo_ids SDO_TGL_OBJECT_ARRAY,
delete_Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
Constructor Function SDO_Topo_Geometry(topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
add_Topo_ids SDO_TGL_OBJECT_ARRAY,
delete_Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
Member Function Get_Geometry
return SDO_GEOMETRY DETERMINISTIC )';
exception
when dependent_objects then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')14]: ' || SQLERRM);
end;
begin
execute immediate
' alter type sdo_topo_geometry add
Constructor Function SDO_Topo_Geometry(topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
add Constructor Function SDO_Topo_Geometry(topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
add_Topo_ids SDO_TOPO_OBJECT_ARRAY,
delete_Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
add Constructor Function SDO_Topo_Geometry(topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
add Constructor Function SDO_Topo_Geometry(topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
add_Topo_ids SDO_TOPO_OBJECT_ARRAY,
delete_Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC,
add Member Function Get_Topo_Elements
return SDO_TOPO_OBJECT_ARRAY DETERMINISTIC CASCADE';
exception
when compilation_error then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')15]: ' || SQLERRM);
end;
end;
/
declare
begin
begin
execute immediate
' alter type SDO_Topo_Geometry ' ||
'add member function Get_TGL_Objects ' ||
' return SDO_TGL_OBJECT_ARRAY DETERMINISTIC CASCADE ';
exception
when others then
return;
end;
end;
/
declare
begin
begin
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
add_Topo_ids SDO_TOPO_OBJECT_ARRAY,
delete_Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
add_Topo_ids SDO_TOPO_OBJECT_ARRAY,
delete_Topo_ids SDO_TOPO_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
TG_Type number,
TG_layer_id NUMBER,
add_Topo_ids SDO_TGL_OBJECT_ARRAY,
delete_Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE ';
execute immediate
' alter type sdo_topo_geometry add ' ||
' Constructor Function SDO_Topo_Geometry(tg_id number, topology varchar2,
Table_Name varchar2,
Column_Name varchar2,
TG_Type number,
add_Topo_ids SDO_TGL_OBJECT_ARRAY,
delete_Topo_ids SDO_TGL_OBJECT_ARRAY)
return SELF as RESULT DETERMINISTIC CASCADE ';
exception
when others then
return;
end;
end;
/
declare
begin
begin
execute immediate
' alter type sdo_topo_geometry add ' ||
' MAP MEMBER FUNCTION to_string RETURN VARCHAR2 CASCADE ';
exception
when others then
return;
end;
end;
/
show errors;
grant execute on MDSYS.SDO_Topo_Geometry to public;
declare
begin
begin
execute immediate
'create or replace public synonym SDO_Topo_Geometry ' ||
' for MDSYS.SDO_Topo_Geometry';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdotptyp.sql(' || $$PLSQL_LINE || ')16]: ' || SQLERRM); RAISE;
end;
end;
/
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@?/rdbms/admin/sqlsessend.sql
Rem ********************************************************************
OHA YOOOO