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/sdoutlh.sql

Rem Copyright (c) 2001, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdoutlh.sql - SDO_UTIL package Header
Rem
Rem    DESCRIPTION
Rem      Declaration of the SDO_UTIL package.
Rem
Rem    NOTES
Rem
Rem    BEGIN SQL_FILE_METADATA
Rem    SQL_SOURCE_FILE: sdo/admin/sdoutlh.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdoutlh.plb
Rem    SQL_PHASE: SDOUTLH
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    rjanders    11/21/17 - #24374861: Add GetFirstVertex()/GetLastVertex()
Rem    rjanders    10/30/17 - Change SDO_INDEX_TTS_METADATA to
Rem                           SDO_TTS_METADATA_TABLE
Rem    rjanders    10/13/17 - #6673765: Add blacklist to extract_all()
Rem    rjanders    10/08/17 - Add MDSYS to spatial type
Rem    rjanders    08/28/17 - More 'when others then NULL' fixes
Rem    sravada     05/30/17 - fix extruded_geom creation
Rem    rjanders    05/10/17 - #26037683: Raise 'when other' exceptions
Rem    cfreiwal    04/11/17 - add JSON support
Rem    rjanders    04/17/17 - More 'exception when others' changes
Rem    rjanders    04/10/17 - #25814260: Allow quoted bumpy-case names
Rem    rjanders    04/10/17 - #25861700: GetVertices() support for oriented pt
Rem    rjanders    04/04/17 - Add invalidate_gtt_cache() API
Rem    yhu         03/27/17 - add SPLIT_180_MERIDIAN(geom)
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    rjanders    01/17/17 - #25386668: Add get_coordinate() API
Rem    sravada     11/16/16 - add public HHCELLBOUNDARY call
Rem    sravada     08/12/16 - XbranchMerge sravada_geo_search_api from
Rem                           st_sdo_12.2.0.1.0
Rem    cfreiwal    08/11/16 - add to_wkbgeometry support
Rem    yhu         03/10/16 - have densify_geometry()
Rem    cfreiwal    03/08/16 - add to_wktgeometry_c
Rem    yhu         01/14/16 - enable functional cbtree index
Rem    sravada     08/27/15 - add delete metadata interface
Rem    rjanders    07/15/15 - Add is_spatial_enabled() function
Rem    bkazar      05/20/15 - Add XML/XSD Validator
Rem    yhu         05/04/15 - add process_auxiliary_info for sdo_geometry
Rem                           constructor
Rem    yhu         04/09/15 - work on to_geojson
Rem    rjanders    01/22/15 - Add "is_deleted()" API
Rem    yhu         01/21/15 - work on from_geojson
Rem    bkazar      01/21/15 - Add  sdo_3dtriangle_area
Rem    rjanders    10/22/14 - Make GetNumVertices() deterministic
Rem    rjanders    01/28/14 - #18146131: Correct TO_CHAR() security problem
Rem    bkazar      10/28/13 - All to_gml*geometry interfaces with srsnamespace
Rem                           parameter are used by only web services and thus
Rem                           they are not public interfaces
Rem    rjanders    09/16/13 - OCCS: Remove hardtabs
Rem    pcolley     09/12/13 - Adding a new signature to circle_polygon.
Rem    lramosc     06/25/13 - Add functions to generate GML 3.2.1 from sdo_geometry
Rem    rjanders    06/04/13 - #16900630: Add insert_sdo_geom_metadata()
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    sravada     11/28/12 - add constructors for vertex type
Rem    sravada     10/25/12 - add linear_key interface
Rem    bkazar      10/23/12 - Bug 14793944
Rem    sravada     08/13/12 - add hybrid tile interface
Rem    bkazar      07/17/12 - add optional remove_loops parameter to simplifyVW
Rem    bbamba      07/09/12 - Added getNurbsApprox for NURBS curve evaluation
Rem    bkazar      06/11/12 - Bug 14136864: Simplify affineTransforms interface
Rem    sravada     03/28/12 - add get_boundary for SDO_GEOMETRY
Rem    sravada     02/28/12 - add Ext Gnomonic proj
Rem    bkazar      08/19/11 - Bug 12898399
Rem    sravada     07/11/11 - move JSPs to sdojsph.sql
Rem    bkazar      05/03/11 - bug 3202686 - add new signature to circle_polygon
Rem    rjanders    02/24/11 - Make sdo_geometry functions DETERMINISTIC
Rem    bbamba      02/15/11 - Make change to declarartion of simplify 
Rem    sravada     11/08/10 - add simplifyvw interface
Rem    yhu         04/13/10 - bug 9526679: add PARALLEL_ENABLE
Rem    rjanders    04/05/10 - Rename extractall() to extract_all()
Rem    rjanders    03/23/10 - Add sdo_util.extractall() API
Rem    bkazar      01/06/10 - add get_2d_footprint function to get footprint of
Rem                           3D objects
Rem    bkazar      09/03/09 - reactivating the second sdo_util.extrude signature
Rem    sravada     03/04/09 - bug 8307426
Rem    sravada     02/05/09 - add 11 dimensions to vertex_type
Rem    bkazar      12/22/08 - Bug 7627660: arcs and 2D invalid polygon for
Rem                           extrusion; deprecating extrude with cond
Rem                           parameter
Rem    bkazar      12/10/08 - bug 7629848: add number_of_components
Rem    bkazar      06/20/08 - add getlabelbyelement (commutable with extract3d)
Rem    bkazar      06/12/08 - bug 7158744 - extrusion fixes
Rem    sravada     06/02/08 - bug 7135496
Rem    sravada     05/01/08 - add GeometryToClob
Rem    sravada     03/31/08 - add get quad_tiles
Rem    ningan      02/29/08 - add point_to_line
Rem    bkazar      01/21/08 - add optional 3d srid for extrude
Rem    bkazar      09/29/07 - add from_kmlgeometry (to convert from KML 2.1 to sdo_geometry)
Rem    bkazar      09/28/07 - add to_kmlgeometry (to convert from sdo_geometry to KML 2.1)
Rem    rkothuri    06/19/07 - add remove_inner_rings
Rem    bkazar      06/12/07 - expand_geom added
Rem    bkazar      05/11/07 - add extract3d
Rem    bkazar      04/25/07 - append_to_collection is combined with append
Rem    bkazar      03/29/07 - add pl/sql wrapper for appendToCollection
Rem    bkazar      03/26/07 - pl/sql interface for extrusion and affine
Rem                           transforms
Rem    rkothuri    01/09/07 - add drop_work_tables
Rem    bkazar      12/08/06 - add from_GML311geometry (to convert GML311 to JGeometry)
Rem    bkazar      11/03/06 - add to_gml311geometry (to convert from JGeometry to GML311)
Rem    rkothuri    09/15/06 - 
Rem    mhorhamm    08/21/06 - Add signature to_wktgeometry_varchar
Rem    sravada     03/08/06 - add convert_distance 
Rem    sravada     02/16/06 - move to_gml to Java 
Rem    rkothuri    01/26/06 - change comments 
Rem    rkothuri    01/18/06 - add ptn_mbr_tbl 
Rem    rkothuri    01/13/06 - Add usage for ptntbl 
Rem    sravada     01/05/06 - add GML to Geometry 
Rem    rkothuri    12/28/05 - Add partition_table 
Rem    mhorhamm    05/06/05 - Before returning WKT for geom, first check CRS 
Rem                           kind 
Rem    mhorhamm    09/07/04 - Add function getNumRings 
Rem    sravada     07/30/04 - add create/replace 
Rem    mhorhamm    04/07/04 - Change param name 
Rem    sravada     03/09/04 - fix GTYPE_COLLECTION 
Rem    ningan      01/28/04 - add rectify_geometry
Rem    ningan      11/11/03 - bug 3217106
Rem    mhorhamm    08/13/03 - add validate functions for WKB and WKT 
Rem    mhorhamm    08/12/03 - add from_wktgeometry(VARCHAR2) 
Rem    mhorhamm    08/07/03 - Add functions to_wkbgeometry and to_wktgeometry 
Rem    sravada     07/11/03 - performance fix for get_geometry
Rem    sravada     06/30/03 - 
Rem    sravada     06/11/03 - add TTS init
Rem    sravada     06/09/03 - add Point from bearing and distance
Rem    sravada     06/05/03 - add reverse_linestring
Rem    sravada     04/11/03 - add sdo_concat
Rem    bblackwe    04/02/03 - collapse overloads of ellipse and circle gen; tolerance version only
Rem    bblackwe    02/14/03 - add tolerance overloads of circle and ellipse gen
Rem    sravada     02/13/03 - bug 2784667
Rem    jsharma     10/15/02 - Add TO_GML_GEOMETRY and related functions
Rem    sravada     09/17/02 - add TTS support
Rem    sravada     07/22/02 - add locus generator
Rem    jcwang      07/10/02 - Add Vertex ID in TYPE vertex_type for sorting
Rem    sravada     05/16/02 - add remove dup vertices
Rem    rkothuri    05/20/02 - Change name to spatial_join.
Rem    rkothuri    04/22/02 - add SpatialJoin function
Rem    ningan      02/08/02 - add GetNumElem(...)
Rem    ningan      02/05/02 - add RefineMGon(...)
Rem    ningan      02/04/02 - add OuterLn(...)
Rem    ningan      01/30/02 - add ExtractVoids(...)
Rem    ningan      01/01/02 - add GetNumVertices(...)
Rem    ningan      12/21/01 - add the geometry simplification functionality
Rem    sravada     04/01/02 - add polygon to line
Rem    jcwang      12/18/01 - add convert_number
Rem    sravada     08/15/01 - add vertex table functions
Rem    sravada     08/15/01 - Cleanup the headers, signatures
Rem    wexu        06/13/01 - Merged wexu_sdo_extract
Rem    wexu        05/24/01 - Created
Rem

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

-- Create the types needed for GetVertices function
declare
  does_not_exist exception;
  pragma exception_init(does_not_exist, -04043);
  invalid_trigger exception;
  pragma exception_init(invalid_trigger, -04098);
  dependent_objects exception;
  pragma exception_init(dependent_objects, -02303);
begin
  begin
    execute immediate 'drop type vertex_set_type force ';
    exception
      when does_not_exist then NULL;
      when invalid_trigger then NULL;
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                               'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
  end;
  begin
    execute immediate 'drop type vertex_type force ';
    exception
      when does_not_exist then NULL;
      when dependent_objects then NULL;
      when invalid_trigger then NULL;
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                               'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
  end;
end;
/


create or replace type vertex_type as object
(X  number,
 Y  number,
 Z  number,
 W  number,
 v5 number,
 v6 number,
 v7 number,
 v8 number,
 v9 number,
 v10 number,
 v11 number,
 ID number,
 Constructor
 Function vertex_type(x  In number,
                     y  In number,
                     id In number)
 Return Self As Result, 
Constructor
Function vertex_type(x In number,
                     y In number,
                     z In number,
                     w in number)
Return Self As Result, 
Constructor
Function vertex_type(x In number,
                     y In number,
                     z In number,
                     w in number,
                     id in number)
Return Self As Result );
/

create or replace type body  vertex_type IS
 Constructor
 Function vertex_type(x  In number,
                     y  In number,
                     id In number)
 Return Self As Result IS
 BEGIN
   SELF.X := x;
   SELF.Y := Y;
   SELF.ID := id;
   SELF.Z := NULL;
   SELF.W := NULL;
   SELF.V5 := NULL;
   SELF.V6 := NULL;
   SELF.V7 := NULL;
   SELF.V8 := NULL;
   SELF.V9 := NULL;
   SELF.V10 := NULL;
   SELF.V11 := NULL;
   RETURN;
  END;
 Constructor
 Function vertex_type(x  In number,
                     y  In number,
                     z  In number,
                     w  In number)
 Return Self As Result IS
 BEGIN
   SELF.X := x;
   SELF.Y := Y;
   SELF.Z := z;
   SELF.W := w;
   SELF.ID := NULL;
   SELF.V5 := NULL;
   SELF.V6 := NULL;
   SELF.V7 := NULL;
   SELF.V8 := NULL;
   SELF.V9 := NULL;
   SELF.V10 := NULL;
   SELF.V11 := NULL;
   RETURN;
  END;
 Constructor
 Function vertex_type(x  In number,
                     y  In number,
                     z  In number,
                     w  In number,
                     id In number)
 Return Self As Result IS
 BEGIN
   SELF.X := x;
   SELF.Y := Y;
   SELF.ID := id;
   SELF.Z := z;
   SELF.W := w;
   SELF.V5 := NULL;
   SELF.V6 := NULL;
   SELF.V7 := NULL;
   SELF.V8 := NULL;
   SELF.V9 := NULL;
   SELF.V10 := NULL;
   SELF.V11 := NULL;
   RETURN;
  END;
 END;
/


create or replace type vertex_set_type as TABLE of vertex_type;
/

grant execute on vertex_type to public;
grant execute on vertex_set_type to public;

-- Create the types needed for Geo Search function
declare
  does_not_exist exception;
  pragma exception_init(does_not_exist, -04043);
  invalid_trigger exception;
  pragma exception_init(invalid_trigger, -04098);
  dependent_objects exception;
  pragma exception_init(dependent_objects, -02303);
begin
  begin
    execute immediate 'drop type mdsys.sdo_geo_search_table force ';
    exception
      when does_not_exist then NULL;
      when invalid_trigger then NULL;
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
  end;
  begin
    execute immediate 'drop type mdsys.sdo_geo_search force ';
    exception
      when does_not_exist then NULL;
      when dependent_objects then NULL;
      when invalid_trigger then NULL;
      when others then
        SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
  end;
end;
/

create or replace type mdsys.sdo_geo_search as object (
  name varchar2(200),
  Key  varchar2(2000),
  lang_code varchar2(3),
  center_lang number,
  center_lat number,
  rank  number);
/
create or replace type mdsys.sdo_geo_search_table as TABLE of mdsys.sdo_geo_search;
/

grant execute on mdsys.sdo_geo_search to public;
grant execute on mdsys.sdo_geo_search_table to public;


declare
  already_exists exception;
  pragma exception_init(already_exists, -00955);
  dependent_objects exception;
  pragma exception_init(dependent_objects, -02303);
begin
  begin
    EXECUTE IMMEDIATE 
      ' create or replace type extruded_geom as object(
        geom mdsys.sdo_geometry, min  number, max  number) ';
   exception
     when already_exists then NULL;
     when dependent_objects then NULL;
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM);
  end;

  begin
    EXECUTE IMMEDIATE
      ' create or replace type extruded_geom_array is varray(1000000) of extruded_geom ';
   exception
     when already_exists then NULL;
     when dependent_objects then NULL;
     when others then
       SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                              'EXCEPTION[sdoutlh.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM);
  end;
end;
/


CREATE OR REPLACE PACKAGE mdsys.sdo_util AUTHID current_user AS

-- CONSTANT DECLARATION
  SDO_GTYPE_CURVE         CONSTANT  NUMBER := 2; 
  SDO_GTYPE_POLYGON       CONSTANT  NUMBER := 3;
  SDO_GTYPE_COLLECTION    CONSTANT  NUMBER := 4;
  SDO_GTYPE_MULTICURVE    CONSTANT  NUMBER := 6;   
  SDO_GTYPE_MULTIPOLYGON  CONSTANT  NUMBER := 7;


  -- Invalidate the GTT "bulk load" cache (flush contents to disk)
  PROCEDURE invalidate_gtt_cache;

  FUNCTION check_endian(index_owner IN VARCHAR2,
                        index_table IN VARCHAR2,
                        root_addr IN VARCHAR2)
  return NUMBER;

  -- Update the "endian-ness" of the index table
  PROCEDURE update_endian(index_owner IN VARCHAR2,
                          index_table IN VARCHAR2,
                          index_fanout IN PLS_INTEGER,
                          index_dims IN PLS_INTEGER);

  -- Copy <USER>.SDO_INDEX_TTS_METADATA$ to MDSYS.SDO_TTS_METADATA_TABLE
  PROCEDURE copy_pre11gR2_metadata(index_owner IN VARCHAR2,
                                   index_name IN VARCHAR2,
                                   index_partition IN VARCHAR2);

  -- Is this an internal "rename table" operation as a result of a
  -- user-initiated DROP TABLE operation? (0=no, 1=yes)
  FUNCTION is_internal_rename
  return number;

  -- Determine if a "table name" is really a deleted table
  -- "internal" name...
  FUNCTION is_deleted(int_name IN varchar) 
  return boolean;

  -- Normalize quoted name for bumpy-case usage
  FUNCTION get_quoted_name(objname IN VARCHAR2)
  RETURN varchar2 DETERMINISTIC;

  -- Generate quoted name for bump-case usage
  FUNCTION set_quoted_name(objname IN VARCHAR2)
  RETURN varchar2 DETERMINISTIC;

  -- Is "spatial" license option enabled?
  FUNCTION is_spatial_enabled
  RETURN boolean;

  Function expand_multi_point (geometry IN mdsys.sdo_geometry)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION expand_geom (geometry IN mdsys.sdo_geometry)
  RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION extract(geometry IN mdsys.sdo_geometry,
                   element  IN NUMBER,
                   ring     IN NUMBER DEFAULT 0) 
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(extract, wnds, rnps, wnps, trust);

  FUNCTION extract_all(geometry IN mdsys.sdo_geometry,
                       flatten  IN NUMBER DEFAULT 1,
                       exclude  IN MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL)
    RETURN mdsys.sdo_geometry_array DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(extract_all, wnds, rnps, wnps, trust);

  FUNCTION from_json(geometry IN CLOB, crs IN VARCHAR2 DEFAULT NULL,
                       srid IN NUMBER DEFAULT -1)
    RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION to_json(geometry IN MDSYS.SDO_GEOMETRY)
    RETURN CLOB DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(to_json, wnds, rnps, wnps, trust);

  FUNCTION to_json_varchar(geometry IN MDSYS.SDO_GEOMETRY)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(to_json_varchar, wnds, rnps, wnps, trust);

  FUNCTION to_wkbgeometry(geometry IN mdsys.sdo_geometry) 
    RETURN BLOB DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(to_wkbgeometry, wnds, rnps, wnps, trust);

  FUNCTION to_wktgeometry(geometry IN mdsys.sdo_geometry) 
    RETURN CLOB DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(to_wktgeometry, wnds, rnps, wnps, trust);

  FUNCTION to_wktgeometry_varchar(geometry IN mdsys.sdo_geometry)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(to_wktgeometry_varchar, wnds, rnps, wnps, trust);

  FUNCTION append(geometry1 IN MDSYS.sdo_geometry,
                  geometry2 IN MDSYS.sdo_geometry)
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(append, wnds, wnps);

  FUNCTION ExtractVoids(geometry IN mdsys.sdo_geometry,
                        dim      IN mdsys.sdo_dim_array)
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(ExtractVoids, rnds, wnds, rnps, wnps, trust);

 FUNCTION GetVertices(
   geometry IN mdsys.sdo_geometry,
   include_oriented_pt IN number default 0)
 RETURN mdsys.vertex_set_type;
-- PRAGMA restrict_references(GetVertices, wnds, rnps, wnps);

 FUNCTION GetFirstVertex(
   geometry IN mdsys.sdo_geometry,
   include_oriented_pt IN number default 0)
 RETURN mdsys.vertex_type;
-- PRAGMA restrict_references(GetVertices, wnds, rnps, wnps);

 FUNCTION GetLastVertex(
   geometry IN mdsys.sdo_geometry,
   include_oriented_pt IN number default 0)
 RETURN mdsys.vertex_type;
-- PRAGMA restrict_references(GetVertices, wnds, rnps, wnps);

  FUNCTION GetNumElem(geometry IN mdsys.sdo_geometry)
    RETURN NUMBER DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(GetNumElem, rnds, wnds, rnps, wnps, trust);

  FUNCTION GetNumRings(
    geom IN MDSYS.SDO_GEOMETRY)
      RETURN NUMBER DETERMINISTIC PARALLEL_ENABLE;
  PRAGMA restrict_references(GetNumRings, rnds, wnds, rnps, wnps, trust);

  FUNCTION GetNumVertices(geometry IN mdsys.sdo_geometry) 
    RETURN NUMBER DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(GetNumVertices, rnds, wnds, rnps, wnps, trust);

  FUNCTION OuterLn(geometry IN mdsys.sdo_geometry,
                   dim      IN mdsys.sdo_dim_array)
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(OuterLn,rnds,wnds,rnps,wnps,trust);

  FUNCTION RefineMGon(mgon IN mdsys.sdo_geometry,
                      gon  IN mdsys.sdo_geometry,
                      dim  IN mdsys.sdo_dim_array)
    RETURN mdsys.sdo_geometry;
    PRAGMA restrict_references(RefineMGon,rnds,wnds,rnps,wnps,trust);

 -- Determine whether or not a string contains a valid numeric value.
 FUNCTION mdutl_is_numeric(instr varchar2,
                           format_mask varchar2)
 RETURN number DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(mdutl_is_numeric, wnds, rnps, wnps, trust);

 -- Safely convert "number" to corresponding "character" representation
 -- For more information on this function, please refer to the PL/SQL
 -- documentation for the TO_CHAR() function.
 FUNCTION number_to_char(value IN NUMBER,
                         format_mask IN VARCHAR2 DEFAULT NULL,
                         nls_language IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 FUNCTION number_to_char(value IN VARCHAR2,
                         format_mask IN VARCHAR2 DEFAULT NULL,
                         nls_language IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 FUNCTION number_to_char(value IN DATE,
                         format_mask IN VARCHAR2 DEFAULT NULL,
                         option_setting IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 FUNCTION number_to_char(value IN TIMESTAMP,
                         format_mask IN VARCHAR2 DEFAULT NULL,
                         option_setting IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 FUNCTION number_to_char(value IN RAW)
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 FUNCTION number_to_char(value IN CLOB) -- NTEXT
    RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(number_to_char, wnds, rnps, wnps, trust);

 -- truncate the original number up to no_of_digits 
 -- no_of_digits positive:  truncate the number to no_of_digits AFTER the decimal point
 -- ex: truncate_number(1.123456789,5) returns 1.12345
 -- no_of_digits negative:  truncate the number up to no_of_digits BEFORE the decimal point
 -- ex: truncate_number(987654321.123456789,-5) returns 987600000.0
 
 FUNCTION truncate_number(value NUMBER, no_of_digits NUMBER)
    RETURN NUMBER PARALLEL_ENABLE;
 PRAGMA restrict_references(truncate_number, wnds, rnps, wnps);

 FUNCTION rectify_geometry(
    geometry     IN MDSYS.SDO_GEOMETRY,
    tolerance    IN NUMBER)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
   PRAGMA RESTRICT_REFERENCES(rectify_geometry, rnds, wnds, rnps, wnps, trust);

  /* simplify a geometry */
  FUNCTION simplify(
   geometry       IN mdsys.sdo_geometry,
   threshold      IN NUMBER,
   tolerance      IN NUMBER := 0.0000005,
   remove_loops   IN NUMBER := 0) 
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(simplify, rnds, wnds, rnps, wnps, trust);

  FUNCTION simplifyVW(
   geometry       IN mdsys.sdo_geometry,
   vertex_threshold  IN NUMBER,
   tolerance      IN NUMBER := 0.0000005,
   remove_loops   IN NUMBER := 0)
    RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
    PRAGMA restrict_references(simplifyVW, rnds, wnds, rnps, wnps, trust);


 FUNCTION polygontoline(geometry IN mdsys.sdo_geometry)
    return MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION point_to_line(
   geom1 IN mdsys.sdo_geometry,
   geom2 IN mdsys.sdo_geometry,
   tol   IN number := 10e-16)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION remove_duplicates(geometry IN mdsys.sdo_geometry, dim in mdsys.sdo_dim_array)
    return MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION remove_duplicate_vertices(geometry IN mdsys.sdo_geometry, 
                                                tolerance in NUMBER)
    return MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION circle_polygon (point                           MDSYS.SDO_GEOMETRY,
                          radius                          number,
                          arc_tolerance                   number,
                          start_azimuth                   number default NULL,
                          end_azimuth                     number default NULL,
                          orientation                     number default NULL,
                          arc                             number default NULL)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION circle_polygon (center_longitude     number, 
                          center_latitude      number, 
                          radius               number,
                          arc_tolerance            number) 
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION circle_polygon (center_longitude     number, 
                          center_latitude      number, 
                          radius               number,
                          start_azimuth        number,
                          end_azimuth          number,
                          arc_tolerance            number) 
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE; 

 FUNCTION ellipse_polygon (center_longitude                number, 
                           center_latitude                 number, 
                           semi_major_axis                 number,
                           semi_minor_axis                 number,
                           azimuth                         number,
                           arc_tolerance                       number) 
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION point_at_bearing(start_point mdsys.sdo_geometry,
                   bearing number,
                   distance number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 PROCEDURE bearing_tilt_for_points(
                   start_point mdsys.sdo_geometry,
                   end_point mdsys.sdo_geometry,
                   tol number,
                   bearing OUT number,
                   tilt OUT number) ;

 FUNCTION convert_unit(value NUMBER, in_unit varchar2, out_unit varchar2)
 RETURN number PARALLEL_ENABLE;

 FUNCTION convert_distance(srid  number, distance NUMBER, unit_spec  varchar2)
 RETURN number PARALLEL_ENABLE;

 PROCEDURE Prepare_For_TTS (table_space IN VARCHAR2);

 PROCEDURE Initialize_Indexes_For_TTS ;

 FUNCTION to_clob(Geometry IN MDSYS.SDO_GEOMETRY)
  RETURN CLOB DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_clob(ClobGeom IN CLOB)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION to_gmlgeometry(Geometry IN MDSYS.SDO_GEOMETRY) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gmlgeometry(Geometry IN MDSYS.SDO_GEOMETRY, 
                            srsNameSpace IN varchar2, srsNSAlias IN varchar2) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gmlgeometry(Geometry IN MDSYS.SDO_GEOMETRY,
                         coordOrder IN number)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE; 

 FUNCTION to_gmlgeometry(Geometry IN MDSYS.SDO_GEOMETRY, 
                         srsNameSpace IN varchar2, srsNSAlias IN varchar2,
                         coordOrder IN number) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml311geometry(Geometry IN MDSYS.SDO_GEOMETRY) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml311geometry(Geometry IN MDSYS.SDO_GEOMETRY, 
                            srsNameSpace IN varchar2, srsNSAlias IN varchar2) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml311geometry(Geometry IN MDSYS.SDO_GEOMETRY,
                            coordOrder IN number)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml311geometry(Geometry IN MDSYS.SDO_GEOMETRY, 
                            srsNameSpace IN varchar2, srsNSAlias IN varchar2,
                            coordOrder IN number) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml321geometry(Geometry IN MDSYS.SDO_GEOMETRY)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml321geometry(Geometry IN MDSYS.SDO_GEOMETRY,
                            srsNameSpace IN varchar2, srsNSAlias IN varchar2)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml321geometry(Geometry IN MDSYS.SDO_GEOMETRY,
                            coordOrder IN number)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_gml321geometry(Geometry IN MDSYS.SDO_GEOMETRY,
                            srsNameSpace IN varchar2, srsNSAlias IN varchar2,
                            coordOrder IN number)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_kmlgeometry(Geometry IN MDSYS.SDO_GEOMETRY) 
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION to_wkbgeometry_j(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN BLOB DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION to_wktgeometry_j(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN CLOB DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION to_wktgeometry_j_varchar(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_wkbgeometry(geometry IN BLOB)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_wktgeometry(geometry IN CLOB)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_wktgeometry(geometry IN VARCHAR2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN CLOB)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN CLOB, srsNameSpace IN varchar2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN VARCHAR2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN VARCHAR2, srsNameSpace IN varchar2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION from_GMLgeometry(geometry IN CLOB,
                           coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN CLOB, srsNameSpace IN varchar2,
                           coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN VARCHAR2,
                           coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GMLgeometry(geometry IN VARCHAR2, srsNameSpace IN varchar2,
                           coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN CLOB)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN CLOB, srsNameSpace IN varchar2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN VARCHAR2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN VARCHAR2, srsNameSpace IN varchar2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION from_GML311geometry(geometry IN CLOB,
                              coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN CLOB, srsNameSpace IN varchar2,
                              coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN VARCHAR2,
                              coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_GML311geometry(geometry IN VARCHAR2, srsNameSpace IN varchar2,
                              coordOrder IN number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION from_KMLgeometry(geometry IN CLOB)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_KMLgeometry(geometry IN VARCHAR2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_geojson(geometry IN VARCHAR2, crs IN VARCHAR2 DEFAULT NULL,
                       srid IN NUMBER DEFAULT 4326)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION from_geojson(geometry IN CLOB, crs IN VARCHAR2 DEFAULT NULL,
                       srid IN NUMBER DEFAULT 4326)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION to_geojson(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN CLOB DETERMINISTIC  PARALLEL_ENABLE;

 FUNCTION extrude(geometry IN MDSYS.SDO_GEOMETRY,
                  grdHeight IN MDSYS.SDO_NUMBER_ARRAY,
                  height IN MDSYS.SDO_NUMBER_ARRAY,
                  cond IN VARCHAR2,
                  tol IN NUMBER)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION extrude(geometry IN MDSYS.SDO_GEOMETRY,
                  grdHeight IN MDSYS.SDO_NUMBER_ARRAY,
                  height IN MDSYS.SDO_NUMBER_ARRAY,
                  tol IN NUMBER,
                  optional3dSrid IN NUMBER DEFAULT NULL)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


 FUNCTION affinetransforms(geometry IN MDSYS.SDO_GEOMETRY,
                           translation IN VARCHAR2 DEFAULT 'FALSE', tx IN NUMBER DEFAULT 0.0, ty IN NUMBER DEFAULT 0.0, tz IN NUMBER DEFAULT 0.0,
                           scaling IN VARCHAR2 DEFAULT 'FALSE', Psc1 IN MDSYS.SDO_GEOMETRY DEFAULT NULL, sx IN NUMBER DEFAULT 0.0, sy IN NUMBER DEFAULT 0.0, sz IN NUMBER DEFAULT 0.0,
                           rotation IN VARCHAR2 DEFAULT 'FALSE', P1 IN MDSYS.SDO_GEOMETRY DEFAULT NULL, line1 IN MDSYS.SDO_GEOMETRY DEFAULT NULL, angle IN NUMBER DEFAULT 0.0, dir IN NUMBER DEFAULT -1, 
                           shearing IN VARCHAR2 DEFAULT 'FALSE', SHxy IN NUMBER DEFAULT 0.0, SHyx IN NUMBER DEFAULT 0.0, SHxz IN NUMBER DEFAULT 0.0, SHzx IN NUMBER DEFAULT 0.0, SHyz IN NUMBER DEFAULT 0.0, SHzy IN NUMBER DEFAULT 0.0,
                           reflection IN VARCHAR2 DEFAULT 'FALSE', Pref IN MDSYS.SDO_GEOMETRY DEFAULT NULL, lineR IN MDSYS.SDO_GEOMETRY DEFAULT NULL, dirR IN NUMBER DEFAULT -1, planeR IN VARCHAR2 DEFAULT 'FALSE', n IN MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL, bigD IN MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION extract3d(geometry IN MDSYS.SDO_GEOMETRY, label IN VARCHAR2)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION getlabelbyelement(sourceGeometry IN MDSYS.SDO_GEOMETRY, queryElement IN MDSYS.SDO_GEOMETRY, tol IN NUMBER)
 RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION validate_wkbgeometry(geometry IN BLOB)
 RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION validate_wktgeometry(geometry IN CLOB)
 RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION validate_wktgeometry(geometry IN VARCHAR2)
 RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION concat_lines (geometry1 IN MDSYS.SDO_GEOMETRY,
                        geometry2 IN MDSYS.SDO_GEOMETRY)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 PROCEDURE internal_ordinate_copy(src IN MDSYS.SDO_ORDINATE_ARRAY, 
                            src_position IN INTEGER,
                            dst IN OUT NOCOPY MDSYS.SDO_ORDINATE_ARRAY,
                            dst_position IN INTEGER,
                            length IN INTEGER);

 FUNCTION reverse_linestring(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION internal_merge_linestrings(geometry IN MDSYS.SDO_GEOMETRY)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC;

 FUNCTION internal_merge_linestrings(geomArr IN MDSYS.SDO_GEOMETRY_ARRAY)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC;

 FUNCTION internal_make_line_out_of_elem(
     multilinestring IN MDSYS.SDO_GEOMETRY, element_index IN INTEGER)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 PROCEDURE internal_reverse_line_points(
       ordinates IN OUT NOCOPY MDSYS.SDO_ORDINATE_ARRAY);

------------------------------------------------------------------
-- Name
--   Partition_Table
-- Purpose 
--   Partitions the input "schema.tablename" into buckets of at 
--   most ptn_capacity each. The partitioning is based on the 
--   spatial extent or MBR stored as the intervals <min_di, max_di> 
--   in each dimension di.  The data is written back with 
--   the ptn_id into the "output_table" which is assumed to be
--   be pre-created by the user.  
--   The input <tablename> table is expected to have the following columns:
--      "rid" -- unique id for each row (e.g., the table rowid)
--      min_d1, max_d1 -- minimum and maximum values in dimension 1 
--      min_d2, max_d2 -- minimum and maximum values in dimension 2
--      ..
--      min_dn, max_dn -- minimum and maximum values in dimension n
--      where n is the dimensionality specified by inp arg "numdim"
--   The input "wrk_tblspc" specifies the tablespace where "scratch-pad"
--      tables are created and dropped. Keep this tablespace different from 
--      the tablespace in which the input <tablename> and output_table are.  
--      (typical usage: create wrk_tblspc and drop after this procedure)
--   The arg "output_table" specifies where to write the output partitions
--     This routine assumes the output_table is pre-created and has the 
--     following columns:
--     ptn_id number, rid varchar2(24), min_d1 number, max_d1 number,
--     min_d2, max_d2, ...., min_dn, max_dn (all number columns).  
--     This routine writes the rows from <tablename> back to <output_table>
--       with the ptn_id set. 
--  The arg <output_ptn_table> specifies where to write ptn extent information 
--     This table should have the following numeric columns:
--     ptn_id, min_d1, max_d1, min_d2, max_d2, ...., min_dn, max_dn.
--  Parameter "numdim" specifies the number of dimensions. 
--  Parameter "commit_interval" "n" specifies that commits happen 
--  after every batch of n rows that are written to the <output_table>.
--  Parameter "packed_ptns" tries to pack the partitions.  
 
 PROCEDURE partition_table(schemaname in varchar2, tablename in varchar2,
                           output_data_table in varchar2, 
                           output_ptn_table in varchar2, 
                           ptn_capacity in number default 100,
                           numdim in number default 2,
                           wrk_tblspc in varchar2 default null,
                           ptn_type in varchar2 default null,
                           dop in number default 1);


------------------------------------------------------------------
-- Name
--   DROP_WORK_TABLES
-- Purpose
--   This function drops any work tables and views in the current schema 
--   created as part of partition_table, index creation, or 
--   TIN/Point Cloud utilities.
--
--   DROPS all tables/views that match 'M%_<oidstr>$$%'
--   Input oidstr has to contain only hexadecimal numbers w/o spaces

 PROCEDURE DROP_WORK_TABLES(oidstr varchar2);

 FUNCTION remove_inner_rings(inpgeom MDSYS.SDO_GEOMETRY, inptol number) 
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION quad_tiles(geom MDSYS.SDO_GEOMETRY, sdo_level number, tol number:=0.0000000005) 
 RETURN mdsys.F81_index_obj_array DETERMINISTIC;

 /* This function generates hybrid tiles for a given Geometry.
    Only 2D Geometry is supported.
    The SDO_META values are appended to the SDO_CODE to make it easier
    for use with other HHCODE functions. */
 FUNCTION hybrid_tiles(geom MDSYS.SDO_GEOMETRY, sdo_level number := 4, 
                       sdo_ntiles number := 100, tol number:=0.0000000005) 
 RETURN mdsys.H81_index_obj_array DETERMINISTIC;

 FUNCTION interior_point (geom MDSYS.SDO_GEOMETRY, tol number := 0.00000000005)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
 
 FUNCTION number_of_components(geometry MDSYS.SDO_GEOMETRY, requested_type varchar2)
 RETURN NUMBER PARALLEL_ENABLE;

 FUNCTION get_2d_footprint(geometry MDSYS.SDO_GEOMETRY, tolerance number := 0.05)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION convert3007to3008(geometry mdsys.sdo_geometry)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 -- Returns coordinate of a single element geometry.
 -- If coord_index is 0 (or too large), returns the last point in
 -- the single element geometry.
 FUNCTION get_coordinate(geometry in mdsys.sdo_geometry,
                         coord_index in number)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION get_boundary(geometry  in mdsys.sdo_geometry)
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;
-------------------------------------------------------------------------

  function validate_3dtheme(
    theme_name varchar2)
      return varchar2;

  function validate_scene(
    scene_name varchar2)
      return varchar2;

  function validate_viewframe(
    viewframe_name varchar2)
      return varchar2;

  function theme3d_has_lod(
    theme_name varchar2)
      return number;

  procedure theme3d_create_texture_tables(
    texture_table_base_name varchar2);

  procedure theme3d_add_ref_to_tex_tables(
    feature_table           varchar2,
    feature_table_tex_col   varchar2,
    texture_table_base_name varchar2);

  procedure theme3d_add_face_texture(
    texture_table_base_name varchar2,
    texture_id              varchar2,
    theme                   varchar2,
    face_num                integer,
    color_rgb_hex           varchar2,
    texture_bitmap_id       varchar2,
    texture_coord_array_id  varchar2);

  procedure theme3d_add_face_textures(
    texture_table_base_name varchar2,
    texture_id              varchar2,
    theme                   varchar2,
    colors_rgb_hex          mdsys.sdo_string_array,
    texture_bitmap_ids      mdsys.sdo_ordinate_array,
    texture_coord_array_ids mdsys.sdo_ordinate_array);

  procedure theme3d_add_bitmap(
    texture_table_base_name varchar2,
    texture_bitmap_id       varchar2,
    bitmap                  blob,
    url                     varchar2);

  procedure theme3d_add_texture_coords(
    texture_table_base_name varchar2,
    texture_coord_array_id  varchar2,
    texture_coord_array     mdsys.sdo_ordinate_array);

  function theme3d_has_texture(
    theme_name varchar2)
      return number;

  function theme3d_get_block_table(
    theme_name varchar2)
      return varchar2;

 FUNCTION ToGnomonic(geom in mdsys.sdo_geometry, longitude in number, 
                     latitude in number) 
 RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION getNurbsApprox(geometry  IN mdsys.sdo_geometry,
                         tolerance IN number)
 RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(getNurbsApprox, rnds, wnds, rnps, wnps, trust);

 FUNCTION jsph_getnurbsapprox(geometry  IN mdsys.sdo_geometry)
 RETURN mdsys.sdo_geometry DETERMINISTIC PARALLEL_ENABLE;
 PRAGMA restrict_references(jsph_getnurbsapprox, rnds, wnds, rnps, wnps, trust);

 FUNCTION linear_key(geometry  IN mdsys.sdo_geometry,
                     diminfo mdsys.sdo_dim_array,
                     lvl IN NUMBER := 8)
 RETURN RAW DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION linear_key(geometry  IN mdsys.sdo_geometry,
                     min_x IN NUMBER, min_y IN NUMBER,
                     max_x IN NUMBER, max_y IN NUMBER,
                     lvl IN NUMBER := 8)
 RETURN RAW DETERMINISTIC PARALLEL_ENABLE;

 /* documented metadata management routines.
    Assumption is that anyone can create the metadata for anyone
    else. We can assume that this is not a risk as data is created,
    and can always be changed by the owner of the table if the metadata
    is not correct.
 */
 procedure insert_sdo_geom_metadata(owner IN VARCHAR2,
                                    table_name IN VARCHAR2,
                                    column_name IN VARCHAR2,
                                    diminfo IN mdsys.sdo_dim_array,
                                    srid IN number);

 /* We only allow the OWNER, or any user with DBA privs, or
    any user who has SELECT or INDEX privis on the table_name 
    can delete the metadata from a difference schema.
    This is done so that a disruptive user cannot do denial of service
    by continously removing metadata for other tables, there by disabling
    spatial functionality like operators and indexes on these tables.
 */ 
 procedure delete_sdo_geom_metadata(owner IN VARCHAR2,
                                    table_name IN VARCHAR2,
                                    column_name IN VARCHAR2);



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Calculate 3D Geodetic Triangle area with LTP.
-- When the input geometry is 3D Geodetic triangle without inner ring(s), 
-- prefer to use this function instead of sdo_area function since it is more
-- simplified algorithm due to considering only 3D Geodetic triangle geometry.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
 function sdo_3dtriangle_area
 (
    geom IN MDSYS.SDO_GEOMETRY,
    dim  IN MDSYS.SDO_DIM_ARRAY,
    unit IN VARCHAR2 DEFAULT NULL
 )
 return NUMBER DETERMINISTIC PARALLEL_ENABLE; 


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Calculate 3D Geodetic Triangle area with LTP.
-- When the input geometry is 3D Geodetic triangle without inner ring(s), 
-- prefer to use this function instead of sdo_area function since it is more
-- simplified algorithm due to considering only 3D Geodetic triangle geometry.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
 function sdo_3dtriangle_area
 (
    geom IN MDSYS.SDO_GEOMETRY,
    tol  IN NUMBER,
    unit IN VARCHAR2 DEFAULT NULL
 )
 return NUMBER DETERMINISTIC PARALLEL_ENABLE;

 PROCEDURE process_auxiliary_info(
   auxiliary_info IN     varchar2, 
   input_type     IN OUT varchar2, 
   srsNameSpace   IN OUT varchar2,
   coordOrder     IN OUT number, 
   srid           IN OUT integer);


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Validate XML instance against its schema
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
 FUNCTION validate_xml_record
 (
    xml IN CLOB,
    schema IN varchar2
 )
 return VARCHAR2 DETERMINISTIC  PARALLEL_ENABLE;



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Validate all XML instances in a table with XMLType column against its schema
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
 PROCEDURE validate_xml_layer
 (
    table_name        IN varchar2,
    column_name       IN varchar2,
    schema            IN varchar2,
    result_table_name IN varchar2,
    commit_interval   IN number := -1,
    owner             IN varchar2 DEFAULT NULL
 ) ;

-- used for functional cbtree index on point
 FUNCTION get_point_ordinate
 (
    geometry IN mdsys.sdo_geometry,
    pos      IN number
 )
 return number DETERMINISTIC  PARALLEL_ENABLE;

-- used to densify a geometry with default interval=5000, for geodetic
-- geometry, it will be 5000 meters.
 FUNCTION densify_geometry
 (
    geometry IN mdsys.sdo_geometry,
    interval IN number default 5000
 )
 return mdsys.sdo_geometry DETERMINISTIC  PARALLEL_ENABLE;

-- Geo Search API
 FUNCTION GEO_SEARCH
 (
    name  in varchar2,
    fuzzy   in number default null
 )
 return MDSYS.sdo_geo_search_table PIPELINED;

 -- HHCELL BOUNDARY
 FUNCTION HHCELL_BOUNDARY
 (
    linear_key in raw,
    min_x      in number, 
    min_y      in number, 
    max_x      in number, 
    max_y      in number
 )
 return mdsys.sdo_geometry DETERMINISTIC  PARALLEL_ENABLE;

  FUNCTION is_simple_file_name(file_name IN VARCHAR2)
    RETURN VARCHAR2;
 
  FUNCTION SPLIT_180_MERIDIAN
  (
    geometry IN mdsys.sdo_geometry
  )
  RETURN mdsys.sdo_geometry  DETERMINISTIC PARALLEL_ENABLE;
 
  function simplify_to_extruded(
    solid3d MDSYS.sdo_geometry)
      return extruded_geom_array DETERMINISTIC PARALLEL_ENABLE;

  procedure simplify_to_extruded(
    table_in_with_3dsolids    varchar2,
    column_in_with_3dsolids   varchar2,
    table_out_with_2dpolygons varchar2) DETERMINISTIC PARALLEL_ENABLE;

END sdo_util;
/

show errors;

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


OHA YOOOO