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

Rem
Rem $Header: sdo/admin/sdolrsh.sql /main/39 2017/10/20 11:01:24 rjanders Exp $
Rem
Rem sdolrsh.sql
Rem
Rem Copyright (c) 2000, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdolrsh.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/sdolrsh.sql 
Rem    SQL_SHIPPED_FILE: md/admin/sdolrsh.sql 
Rem    SQL_PHASE: SDOLRSH
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    jcwang      06/19/17 - add NOCOPY bug-26281198
Rem    jcwang      05/08/17 - add function representation for LRS procesures
Rem    rjanders    03/23/17 - #25437999: Remove 'when others then NULL'
Rem                           handlers
Rem    jcwang      04/01/16 - bug-22834173
Rem    jcwang      03/17/16 - add project_pt_array
Rem    jcwang      09/09/15 - add SQL file metadata
Rem    jcwang      07/08/14 - lrs_intersection enhancement(multiple lrs intersection) b-19165458
Rem    rjanders    09/16/13 - OCCS: Remove hardtabs
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    bkazar      09/23/11 - Bug 12537683 and 12536474
Rem    jcwang      04/19/10 - enable parallel query
Rem    sravada     06/07/06 - change PRAGMA 
Rem    sravada     05/24/06 - change PRAGAM 
Rem    jcwang      03/21/06 - change lrs_intersection signature 
Rem    jcwang      02/27/06 - add lrs_intersection 
Rem    jcwang      02/21/05 - sql injection bugs 
Rem    jcwang      02/01/05 - bug 4148524 
Rem    jcwang      01/13/03 - change get_prev/next_measure to get_prev/next_shape_pt_measure
Rem    jcwang      01/10/03 - add sdo_lrs.is_shape_pt_measure
Rem    jcwang      12/26/02 - Add get_prev(next)_shape_pt(_m) interface
Rem    jcwang      07/01/02 - 92 LRS Bugs
Rem    jcwang      06/10/02 - LRS performance improvement 
Rem    jcwang      03/20/02 - return signed offset in project_pt function
Rem    jcwang      03/13/02 - bug#2262576: Fix geodetic tolerance conversion
Rem    jcwang      12/10/01 - Support unknown element (type 0)
Rem    jcwang      10/08/01 - Use  Measure toelrance in clipping an LRS Geometry
Rem    jcwang      09/26/01 - add convert_to_lrs_layer_3d signature with dim_name
Rem    jcwang      07/30/01 - fix sdo_point bug
Rem    jcwang      02/26/01 - add geodetic offset func.
Rem    jcwang      11/03/00 - Add LRS geodetic support
Rem    jcwang      10/20/00 - fix lrs gtype bugs
Rem    jcwang      10/04/00 - LRS Gtype QA
Rem    jcwang      09/29/00 - Add LRS Dim position in GTYPE
Rem    jcwang      09/12/00 - Add monotonic decreasing measure
Rem    jcwang      08/15/00 - Created
Rem    jcwang      08/15/00 - Created
Rem


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

--
--
-- External (user level) LRS Package Functions/Procedures Header 
-- 
--

CREATE OR REPLACE PACKAGE MDSYS.sdo_lrs AUTHID current_user AS

--
--
-- functions/procedure for defining, creating and manipulating LRS geometric segments
--
--

   --
   -- define an LRS geometric segment, all measures will be automatically populated
   --

   PROCEDURE define_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                 dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                 start_measure IN NUMBER ,
                                 end_measure   IN NUMBER );


   PROCEDURE define_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                 dim_array     IN MDSYS.SDO_DIM_ARRAY);




   PROCEDURE define_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                 start_measure IN NUMBER ,
                                 end_measure   IN NUMBER ,
                                 tolerance     IN NUMBER DEFAULT 1.0e-8);



   PROCEDURE define_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                 tolerance     IN NUMBER DEFAULT 1.0e-8);




   PROCEDURE define_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                    dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                    start_measure IN NUMBER ,
                                    end_measure   IN NUMBER );

   PROCEDURE define_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                    dim_array     IN MDSYS.SDO_DIM_ARRAY);


   PROCEDURE define_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                    start_measure IN NUMBER ,
                                    end_measure   IN NUMBER ,
                                    tolerance     IN NUMBER DEFAULT 1.0e-8);

   PROCEDURE define_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                    tolerance     IN NUMBER DEFAULT 1.0e-8);


   --
   -- create a new geometric segment by clipping the given geometric segment 
   --

   FUNCTION clip_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              dim_array     IN MDSYS.SDO_DIM_ARRAY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION clip_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER,
                              tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION clip_geom_segment_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                 dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                 start_measure IN NUMBER,
                                 end_measure   IN NUMBER)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION clip_geom_segment_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                 start_measure IN NUMBER,
                                 end_measure   IN NUMBER,
                                 tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   --
   -- split a geometric segment into two
   --


   PROCEDURE split_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                dim_array     IN  MDSYS.SDO_DIM_ARRAY,
                                split_measure IN  NUMBER,
                                segment_1     OUT MDSYS.SDO_GEOMETRY,
                                segment_2     OUT MDSYS.SDO_GEOMETRY);


   PROCEDURE split_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                split_measure IN  NUMBER,
                                segment_1     OUT MDSYS.SDO_GEOMETRY,
                                segment_2     OUT MDSYS.SDO_GEOMETRY,
                                tolerance     IN  NUMBER DEFAULT 1.0e-8);



   PROCEDURE split_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   dim_array     IN  MDSYS.SDO_DIM_ARRAY,
                                   split_measure IN  NUMBER,
                                   segment_1     OUT MDSYS.SDO_GEOMETRY,
                                   segment_2     OUT MDSYS.SDO_GEOMETRY);


   PROCEDURE split_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   split_measure IN  NUMBER,
                                   segment_1     OUT MDSYS.SDO_GEOMETRY,
                                   segment_2     OUT MDSYS.SDO_GEOMETRY,
                                   tolerance     IN  NUMBER DEFAULT 1.0e-8);



   --
   -- concatenate two geometric segments into one
   --

   FUNCTION concatenate_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                      dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                                      geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                      dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION concatenate_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                      geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                      tolerance      IN NUMBER DEFAULT 1.0e-8)  
                                   
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION concatenate_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                         dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                                         geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                         dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION concatenate_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                         geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                         tolerance      IN NUMBER DEFAULT 1.0e-8)       
                                   
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;





   --
   -- general segment scaling function
   --

   FUNCTION scale_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               start_measure IN NUMBER,
                               end_measure   IN NUMBER,
                               shift_measure IN NUMBER)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION scale_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                               start_measure IN NUMBER,
                               end_measure   IN NUMBER,
                               shift_measure IN NUMBER,
                               tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




--
--
-- LRS query functions/procedures
--
--

   --
   -- check if the given geometric segment is valid
   --

   FUNCTION valid_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY,
                               dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_geom_segment(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION valid_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_geom_segment_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;




   --
   -- check if the measure information of a given geometric segment is defined
   -- the geom segment must be valid, (type, length, and no of dim, etc)
   --    

   FUNCTION is_geom_segment_defined(geom_segment IN MDSYS.SDO_GEOMETRY,
                                    dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_geom_segment_defined(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION is_geom_segment_defined_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                       dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;

   FUNCTION is_geom_segment_defined_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   --
   -- check if the given LRS point is valid
   --


   FUNCTION valid_lrs_pt(point      IN MDSYS.SDO_GEOMETRY,
                         dim_array  IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_lrs_pt(point      IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION valid_lrs_pt_3d(point      IN MDSYS.SDO_GEOMETRY,
                            dim_array  IN MDSYS.SDO_DIM_ARRAY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_lrs_pt_3d(point      IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;




   --
   -- check if the given measure falls within the start/end measures 
   -- of a given geometric segment
   --


   FUNCTION valid_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                          dim_array    IN MDSYS.SDO_DIM_ARRAY,
                          measure      IN NUMBER) 
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                          measure      IN NUMBER) 
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION valid_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                             dim_array    IN MDSYS.SDO_DIM_ARRAY,
                             measure      IN NUMBER) 
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION valid_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                             measure      IN NUMBER) 
   RETURN VARCHAR2 PARALLEL_ENABLE;


   



   --
   -- check if two given geometric segments are connected
   --

   FUNCTION connected_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                    dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                                    geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                    dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION connected_geom_segments(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                    geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                    tolerance      IN NUMBER)

                                   
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION connected_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                       dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                                       geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                       dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION connected_geom_segments_3d(geom_segment_1 IN MDSYS.SDO_GEOMETRY,
                                       geom_segment_2 IN MDSYS.SDO_GEOMETRY,
                                       tolerance      IN NUMBER)
   RETURN VARCHAR2 PARALLEL_ENABLE;





   --
   -- return the length of the given geometric segment
   --

   FUNCTION geom_segment_length(geom_segment IN MDSYS.SDO_GEOMETRY,
                                dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION geom_segment_length(geom_segment IN MDSYS.SDO_GEOMETRY,
                                tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION geom_segment_length_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                   dim_array    IN MDSYS.SDO_DIM_ARRAY)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION geom_segment_length_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                   tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN NUMBER PARALLEL_ENABLE;




   --
   -- return the start point of the geometric segment
   --

   FUNCTION geom_segment_start_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION geom_segment_start_pt(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION geom_segment_start_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                     dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION geom_segment_start_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   --
   -- return the start measure of the geometric segment
   --


   FUNCTION geom_segment_start_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                                       dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION geom_segment_start_measure(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION geom_segment_start_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                          dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION geom_segment_start_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN NUMBER PARALLEL_ENABLE;



   --
   -- return the end point of the geometric segment
   --

   FUNCTION geom_segment_end_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
                                dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION geom_segment_end_pt(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION geom_segment_end_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                   dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION geom_segment_end_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   --
   -- return the end point of the geometric segment
   --

   FUNCTION geom_segment_end_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                                     dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION geom_segment_end_measure(geom_segment IN MDSYS.SDO_GEOMETRY)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION geom_segment_end_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                        dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION geom_segment_end_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN NUMBER PARALLEL_ENABLE;





   --
   -- return the measure of a LSR point
   --

   FUNCTION get_measure(point     IN MDSYS.SDO_GEOMETRY,    
                        dim_array IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION get_measure(point     IN MDSYS.SDO_GEOMETRY)    
   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_measure_3d(point     IN MDSYS.SDO_GEOMETRY,    
                           dim_array IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_measure_3d(point     IN MDSYS.SDO_GEOMETRY)   
   RETURN NUMBER PARALLEL_ENABLE;



   --
   -- locate the point w.r.t a given geometric segment
   --

   FUNCTION locate_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
                      dim_array    IN MDSYS.SDO_DIM_ARRAY,
                      measure      IN NUMBER,
                      offset       IN NUMBER DEFAULT 0)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION locate_pt(geom_segment IN MDSYS.SDO_GEOMETRY,
                      measure      IN NUMBER,
                      offset       IN NUMBER default 0,
                      tolerance    IN NUMBER default 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION locate_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                         dim_array    IN MDSYS.SDO_DIM_ARRAY,
                         measure      IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION locate_pt_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                         measure      IN NUMBER,
                         tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;





   --
   -- return the projection point of a given point w.r.t. to a given geometric segment
   --

   FUNCTION project_pt(geom_segment    IN MDSYS.SDO_GEOMETRY,
                       dim_array       IN MDSYS.SDO_DIM_ARRAY,
                       point           IN MDSYS.SDO_GEOMETRY,
                       point_dim_array IN MDSYS.SDO_DIM_ARRAY )


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt(geom_segment    IN MDSYS.SDO_GEOMETRY,
                       dim_array       IN MDSYS.SDO_DIM_ARRAY,
                       point           IN MDSYS.SDO_GEOMETRY)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt(geom_segment    IN  MDSYS.SDO_GEOMETRY,
                       dim_array       IN  MDSYS.SDO_DIM_ARRAY,
                       point           IN  MDSYS.SDO_GEOMETRY,
                       point_dim_array IN  MDSYS.SDO_DIM_ARRAY,
                       offset          OUT NUMBER)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;





   FUNCTION project_pt(geom_segment    IN MDSYS.SDO_GEOMETRY,
                       point           IN MDSYS.SDO_GEOMETRY,
                       tolerance       IN NUMBER DEFAULT 1.0e-8)



   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt(geom_segment    IN  MDSYS.SDO_GEOMETRY,
                       point           IN  MDSYS.SDO_GEOMETRY,
                       tolerance       IN  NUMBER,
                       offset          OUT NUMBER )

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION project_pt_3d(geom_segment    IN MDSYS.SDO_GEOMETRY,
                          dim_array       IN MDSYS.SDO_DIM_ARRAY,
                          point           IN MDSYS.SDO_GEOMETRY,
                          point_dim_array IN MDSYS.SDO_DIM_ARRAY )

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION project_pt_3d(geom_segment    IN MDSYS.SDO_GEOMETRY,
                          dim_array       IN MDSYS.SDO_DIM_ARRAY,
                          point           IN MDSYS.SDO_GEOMETRY)
                         

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt_3d(geom_segment    IN  MDSYS.SDO_GEOMETRY,
                          dim_array       IN  MDSYS.SDO_DIM_ARRAY,
                          point           IN  MDSYS.SDO_GEOMETRY,
                          point_dim_array IN  MDSYS.SDO_DIM_ARRAY,
                          offset          OUT NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION project_pt_3d(geom_segment    IN MDSYS.SDO_GEOMETRY,
                          point           IN MDSYS.SDO_GEOMETRY,
                          tolerance       IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt_3d(geom_segment    IN  MDSYS.SDO_GEOMETRY,
                          point           IN  MDSYS.SDO_GEOMETRY,
                          tolerance       IN  NUMBER,
                          offset          OUT NUMBER)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;







---
--- LRS 817 features declaration
---



   --
   -- return geom segment measure range 
   -- 

   FUNCTION measure_range(geom_segment IN MDSYS.SDO_GEOMETRY,
                          dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION measure_range(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN NUMBER PARALLEL_ENABLE;




   FUNCTION measure_range_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                             dim_array    IN MDSYS.SDO_DIM_ARRAY)
   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION measure_range_3d(geom_segment IN MDSYS.SDO_GEOMETRY)
   RETURN NUMBER PARALLEL_ENABLE;






   --
   -- Convert standard dim info to lrs diminfo by adding an additional measure informaiotn
   --

   FUNCTION convert_to_lrs_dim_array(dim_array   IN MDSYS.SDO_DIM_ARRAY,
                                     dim_name    IN VARCHAR2,   
                                     dim_pos     IN INTEGER,
                                     lower_bound IN NUMBER DEFAULT NULL,
                                     upper_bound IN NUMBER DEFAULT NULL,
                                     tolerance   IN NUMBER DEFAULT NULL)

   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;



   --
   -- Convert standard dim info to lrs diminfo by adding an additional measure informaiotn
   --

   FUNCTION convert_to_lrs_dim_array(dim_array   IN MDSYS.SDO_DIM_ARRAY,
                                     dim_name    IN VARCHAR2,   
                                     lower_bound IN NUMBER DEFAULT NULL,
                                     upper_bound IN NUMBER DEFAULT NULL,
                                     tolerance   IN NUMBER DEFAULT NULL)

   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;



   FUNCTION convert_to_lrs_dim_array(dim_array   IN MDSYS.SDO_DIM_ARRAY,
                                     lower_bound IN NUMBER DEFAULT NULL,
                                     upper_bound IN NUMBER DEFAULT NULL,
                                     tolerance   IN NUMBER DEFAULT NULL)

   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;





   FUNCTION convert_to_lrs_dim_array_3d(dim_array   IN MDSYS.SDO_DIM_ARRAY,
                                        dim_name    IN VARCHAR2,        
                                        lower_bound IN NUMBER DEFAULT NULL,
                                        upper_bound IN NUMBER DEFAULT NULL,
                                        tolerance   IN NUMBER DEFAULT NULL)

   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;




   FUNCTION convert_to_std_dim_array(dim_array   IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;


   FUNCTION convert_to_std_dim_array(dim_array   IN MDSYS.SDO_DIM_ARRAY,
                                     m_pos       IN INTEGER)
   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;



   FUNCTION convert_to_std_dim_array_3d(dim_array   IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_DIM_ARRAY PARALLEL_ENABLE;





   --
   -- Convert standard linestring geometry to an LRS geom segment
   --

   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                m_pos         IN INTEGER,
                                start_measure IN NUMBER ,
                                end_measure   IN NUMBER )
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                m_pos         IN INTEGER DEFAULT NULL)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                start_measure IN NUMBER ,
                                end_measure   IN NUMBER )
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                m_pos         IN INTEGER,       
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER)
                                
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY,
                                m_pos         IN INTEGER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION convert_to_lrs_geom(standard_geom IN MDSYS.SDO_GEOMETRY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION convert_to_lrs_geom_3d(standard_geom IN MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                   start_measure IN NUMBER DEFAULT NULL,
                                   end_measure   IN NUMBER DEFAULT NULL)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_geom_3d(standard_geom IN MDSYS.SDO_GEOMETRY,
                                   start_measure IN NUMBER DEFAULT NULL,
                                   end_measure   IN NUMBER DEFAULT NULL)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- Convert an LRS geometry to a standard linestring geometry
   --

   FUNCTION convert_to_std_geom(lrs_geom IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_std_geom(lrs_geom IN MDSYS.SDO_GEOMETRY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION convert_to_std_geom_3d(lrs_geom      IN MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION convert_to_std_geom_3d(lrs_geom IN MDSYS.SDO_GEOMETRY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;





   --
   -- Update standard geometry layer to an LRS geometry layer, metadata is updated as well
   --

   FUNCTION convert_to_lrs_layer(table_name    IN VARCHAR2,
                                 column_name   IN VARCHAR2,
                                 lower_bound   IN NUMBER DEFAULT NULL,
                                 upper_bound   IN NUMBER DEFAULT NULL,
                                 tolerance     IN NUMBER DEFAULT NULL)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_layer(table_name    IN VARCHAR2,
                                 column_name   IN VARCHAR2,
                                 dim_name      IN VARCHAR2,
                                 dim_pos       IN INTEGER,
                                 lower_bound   IN NUMBER DEFAULT NULL,
                                 upper_bound   IN NUMBER DEFAULT NULL,
                                 tolerance     IN NUMBER DEFAULT NULL)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION convert_to_lrs_layer_3d(table_name    IN VARCHAR2,
                                    column_name   IN VARCHAR2,
                                    lower_bound   IN NUMBER DEFAULT NULL,
                                    upper_bound   IN NUMBER DEFAULT NULL,
                                    tolerance     IN NUMBER DEFAULT NULL)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION convert_to_lrs_layer_3d(table_name    IN VARCHAR2,
                                    column_name   IN VARCHAR2,
                                    dim_name      IN VARCHAR2,
                                    lower_bound   IN NUMBER DEFAULT NULL,
                                    upper_bound   IN NUMBER DEFAULT NULL,
                                    tolerance     IN NUMBER DEFAULT NULL)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   --
   -- Update standard geometry layer to an LRS geometry layer, metadata is updated as well
   --

   FUNCTION convert_to_std_layer(table_name    IN VARCHAR2,
                                 column_name   IN VARCHAR2)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION convert_to_std_layer_3d(table_name    IN VARCHAR2,
                                    column_name   IN VARCHAR2)
   RETURN VARCHAR2 PARALLEL_ENABLE;



   --
   -- LRS 817 feature
   -- return a new geom_segment by translateing the original geom_segment
   --

   FUNCTION translate_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                              dim_array    IN MDSYS.SDO_DIM_ARRAY,
                              translate_m  IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION translate_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                              translate_m  IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION translate_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                 dim_array    IN MDSYS.SDO_DIM_ARRAY,
                                 translate_m  IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION translate_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                                 translate_m  IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- LRS 817 feature
   -- return a new geom_segment by reversing the original geom segment
   --

   FUNCTION reverse_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                            dim_array    IN MDSYS.SDO_DIM_ARRAY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION reverse_measure(geom_segment IN MDSYS.SDO_GEOMETRY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION reverse_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                               dim_array    IN MDSYS.SDO_DIM_ARRAY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION reverse_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   --
   -- LRS 817 find the measure of the closest pt of a given pt w.r.t. an LRS segment
   -- first project the pt onto the LRS segment then get the measure of the projection pt
   --

   FUNCTION find_measure(geom_segment           IN MDSYS.SDO_GEOMETRY,
                         dim_array              IN MDSYS.SDO_DIM_ARRAY,
                         point                  IN MDSYS.SDO_GEOMETRY,
                         point_dim_array        IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)

   RETURN NUMBER PARALLEL_ENABLE;




   FUNCTION find_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                         point        IN MDSYS.SDO_GEOMETRY,
                         tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION find_measure_3d(geom_segment        IN MDSYS.SDO_GEOMETRY,
                            dim_array           IN MDSYS.SDO_DIM_ARRAY,
                            point               IN MDSYS.SDO_GEOMETRY,
                            point_dim_array     IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)

   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION find_measure_3d(geom_segment IN MDSYS.SDO_GEOMETRY,
                            point        IN MDSYS.SDO_GEOMETRY,
                            tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN NUMBER PARALLEL_ENABLE;

   FUNCTION find_offset(geom_segment            IN MDSYS.SDO_GEOMETRY,
                        dim_array               IN MDSYS.SDO_DIM_ARRAY,
                        point                   IN MDSYS.SDO_GEOMETRY,
                        point_dim_array         IN MDSYS.SDO_DIM_ARRAY DEFAULT NULL)

   RETURN NUMBER PARALLEL_ENABLE;




   FUNCTION find_offset(geom_segment IN MDSYS.SDO_GEOMETRY,
                        point        IN MDSYS.SDO_GEOMETRY,
                        tolerance    IN NUMBER DEFAULT 1.0e-8)

   RETURN NUMBER PARALLEL_ENABLE;





   --
   -- LRS 817 dynamic segmentation, an alias of clip_geom_segment
   -- 


   FUNCTION dynamic_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                            dim_array     IN MDSYS.SDO_DIM_ARRAY,
                            start_measure IN NUMBER,
                            end_measure   IN NUMBER )

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION dynamic_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                            start_measure IN NUMBER,
                            end_measure   IN NUMBER,
                            tolerance     IN NUMBER DEFAULT 1.0e-8)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION dynamic_segment_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               start_measure IN NUMBER,
                               end_measure   IN NUMBER )

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION dynamic_segment_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                               start_measure IN NUMBER,
                               end_measure   IN NUMBER,
                               tolerance     IN NUMBER DEFAULT 1.0e-8)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   
   --
   -- LRS 817 convert a measure to a percentage (0%~100%) w.r.t. a given geom segment
   --


   FUNCTION measure_to_percentage(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  dim_array    IN MDSYS.SDO_DIM_ARRAY,
                                  measure      IN NUMBER) 

   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION measure_to_percentage(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  measure      IN NUMBER) 

   RETURN NUMBER PARALLEL_ENABLE;




   --
   -- LRS 817 convert a percentage (0%~100%) to a measure w.r.t. given geom segment
   --

   FUNCTION percentage_to_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  dim_array    IN MDSYS.SDO_DIM_ARRAY,
                                  percentage   IN NUMBER) 

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION percentage_to_measure(geom_segment IN MDSYS.SDO_GEOMETRY,
                                  percentage   IN NUMBER) 

   RETURN NUMBER PARALLEL_ENABLE;



   --
   -- reset the measure values to NULL
   --   
   PROCEDURE reset_measure(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                           dim_array     IN MDSYS.SDO_DIM_ARRAY);


   PROCEDURE reset_measure(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY);



   --
   -- Redefine the LRS segment (ignore all current measures) and repopulate measure info. based on
   -- the given start/end measure, this is different from define_geom_segment which keeps old measure info
   -- if exist.
   --

   PROCEDURE redefine_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                   start_measure IN NUMBER ,
                                   end_measure   IN NUMBER );


   PROCEDURE redefine_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY);




   PROCEDURE redefine_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                   start_measure IN NUMBER ,
                                   end_measure   IN NUMBER ,
                                   tolerance     IN NUMBER DEFAULT 1.0e-8);



   PROCEDURE redefine_geom_segment(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                   tolerance     IN NUMBER DEFAULT 1.0e-8);




   PROCEDURE redefine_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                      start_measure IN NUMBER ,
                                      end_measure   IN NUMBER );


   PROCEDURE redefine_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY);



   PROCEDURE redefine_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                      start_measure IN NUMBER ,
                                      end_measure   IN NUMBER ,
                                      tolerance     IN NUMBER DEFAULT 1.0e-8);


   PROCEDURE redefine_geom_segment_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY,
                                      tolerance     IN NUMBER DEFAULT 1.0e-8);




---
--- 82 LRS Features
---   


   --
   -- set the measure value of the closest point (using snap_to_pt) in the given geometry
   --

   FUNCTION set_pt_measure(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY, 
                           dim_array     IN MDSYS.SDO_DIM_ARRAY,
                           point         IN MDSYS.SDO_GEOMETRY,
                           pt_dim_array  IN MDSYS.SDO_DIM_ARRAY,
                           measure       IN NUMBER )
   RETURN VARCHAR2 PARALLEL_ENABLE; 


   FUNCTION  set_pt_measure(point         IN OUT MDSYS.SDO_GEOMETRY, 
                            dim_array     IN MDSYS.SDO_DIM_ARRAY,
                            measure       IN NUMBER ) 
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION  set_pt_measure(point         IN OUT MDSYS.SDO_GEOMETRY, 
                            measure       IN NUMBER ) 
   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION set_pt_measure(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY, 
                           point         IN MDSYS.SDO_GEOMETRY,
                           measure       IN NUMBER )
   RETURN VARCHAR2 PARALLEL_ENABLE; 




   FUNCTION set_pt_measure_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY, 
                              dim_array     IN MDSYS.SDO_DIM_ARRAY,
                              point         IN MDSYS.SDO_GEOMETRY,
                              pt_dim_array  IN MDSYS.SDO_DIM_ARRAY,
                              measure       IN NUMBER )
   RETURN VARCHAR2 PARALLEL_ENABLE; 


   FUNCTION set_pt_measure_3d(geom_segment  IN OUT NOCOPY MDSYS.SDO_GEOMETRY, 
                              point         IN MDSYS.SDO_GEOMETRY,
                              measure       IN NUMBER )
   RETURN VARCHAR2 PARALLEL_ENABLE; 



   --
   -- reverse the direction of the geometry (shape pt order )
   -- 

   FUNCTION reverse_geometry(geom          IN MDSYS.SDO_GEOMETRY,
                             dim_array     IN MDSYS.SDO_DIM_ARRAY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION reverse_geometry(geom          IN MDSYS.SDO_GEOMETRY)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- generate an offset curve w.r.t. to an LRS geometry
   --   

   -- for geodetic offset, consider arc_tolerance

   FUNCTION offset_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER,
                                offset        IN NUMBER,
                                unit          IN VARCHAR2)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   -- for geodetic offset, consider arc_tolerance

   FUNCTION offset_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER,
                                offset        IN NUMBER,
                                tolerance     IN NUMBER, 
                                unit          IN VARCHAR2)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION offset_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER,
                                offset        IN NUMBER)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION offset_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER,
                                offset        IN NUMBER,
                                tolerance     IN NUMBER)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION offset_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                start_measure IN NUMBER,
                                end_measure   IN NUMBER,
                                offset        IN NUMBER)


   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION is_measure_increasing(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY)


   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION is_measure_increasing(geom_segment  IN MDSYS.SDO_GEOMETRY)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_measure_increasing_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                     dim_array     IN MDSYS.SDO_DIM_ARRAY)


   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION is_measure_increasing_3d(geom_segment  IN MDSYS.SDO_GEOMETRY)

   RETURN VARCHAR2 PARALLEL_ENABLE;




   FUNCTION is_measure_decreasing(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY)


   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_measure_decreasing(geom_segment  IN MDSYS.SDO_GEOMETRY)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_measure_decreasing_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                     dim_array     IN MDSYS.SDO_DIM_ARRAY)


   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_measure_decreasing_3d(geom_segment  IN MDSYS.SDO_GEOMETRY)

   RETURN VARCHAR2 PARALLEL_ENABLE;



   FUNCTION validate_lrs_geometry(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION validate_lrs_geometry(geom_segment  IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION validate_lrs_geometry_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                     dim_array     IN MDSYS.SDO_DIM_ARRAY)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION validate_lrs_geometry_3d(geom_segment  IN MDSYS.SDO_GEOMETRY)
   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION find_lrs_dim_pos(table_name    IN VARCHAR2,
                             column_name   IN VARCHAR2)
   RETURN INTEGER PARALLEL_ENABLE;


   --
   -- get previous shape point based on the given measure
   --

   FUNCTION get_prev_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                  measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   --
   -- get previous shape point based on the given point
   --


   FUNCTION get_prev_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               point         IN MDSYS.SDO_GEOMETRY)     

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               point         IN MDSYS.SDO_GEOMETRY)     

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                  point         IN MDSYS.SDO_GEOMETRY)  

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  point         IN MDSYS.SDO_GEOMETRY)  

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- get the next shape point based on the given measure
   --


   FUNCTION get_next_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION get_next_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                  measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION get_next_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  measure       IN NUMBER)

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- get the next shape point based on  the given point
   --


   FUNCTION get_next_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               dim_array     IN MDSYS.SDO_DIM_ARRAY,
                               point         IN MDSYS.SDO_GEOMETRY)     

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt (geom_segment  IN MDSYS.SDO_GEOMETRY,
                               point         IN MDSYS.SDO_GEOMETRY)     

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                  point         IN MDSYS.SDO_GEOMETRY)  

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                  point         IN MDSYS.SDO_GEOMETRY)  

   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   --
   -- get previous measure basd on the given measure
   --


   FUNCTION get_prev_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                      measure        IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_measure (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                       measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;




   FUNCTION get_prev_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                         dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                         measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_measure_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                          measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;




   --
   -- get previous measure (of shape point) based on the given point
   --


   FUNCTION get_prev_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                      point          IN MDSYS.SDO_GEOMETRY)     

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                      point          IN MDSYS.SDO_GEOMETRY)     

   RETURN NUMBER PARALLEL_ENABLE;





   FUNCTION get_prev_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                         dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                         point        IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_prev_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                         point        IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER PARALLEL_ENABLE;





   --
   -- get the next measure (of shape point) based on the given measure
   --


   FUNCTION get_next_shape_pt_measure (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                       dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                       measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION get_next_shape_pt_measure (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                       measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION get_next_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                      point           IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                      point           IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_measure_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                          dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                          measure       IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;


   FUNCTION get_next_shape_pt_measure_3d (geom_segment  IN MDSYS.SDO_GEOMETRY,
                                          measure        IN NUMBER)

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                         dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                         point        IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER PARALLEL_ENABLE;



   FUNCTION get_next_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                         point        IN MDSYS.SDO_GEOMETRY)    

   RETURN NUMBER;


   FUNCTION is_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                measure       IN NUMBER)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_shape_pt_measure(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                measure       IN NUMBER)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                   measure       IN NUMBER)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   FUNCTION is_shape_pt_measure_3d(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                   measure       IN NUMBER)

   RETURN VARCHAR2 PARALLEL_ENABLE;


   --
   -- intersection for LRS geometries
   --

   FUNCTION lrs_intersection( geom_1 IN MDSYS.SDO_GEOMETRY,
                              dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                              geom_2 IN MDSYS.SDO_GEOMETRY,
                              dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION lrs_intersection( geom_1 IN MDSYS.SDO_GEOMETRY,
                              geom_2 IN MDSYS.SDO_GEOMETRY,
                              tolerance      IN NUMBER) 
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   --
   -- multiple lrs_intersections returned in sdo_geometry_array
   --

   FUNCTION lrs_intersection_array( geom_1 IN MDSYS.SDO_GEOMETRY,
                              dim_array_1    IN MDSYS.SDO_DIM_ARRAY,
                              geom_2 IN MDSYS.SDO_GEOMETRY,
                              dim_array_2    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION lrs_intersection_array( geom_1 IN MDSYS.SDO_GEOMETRY,
                              geom_2 IN MDSYS.SDO_GEOMETRY,
                              tolerance      IN NUMBER) 
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION project_pt_array( geom_segment IN MDSYS.SDO_GEOMETRY,
                              dim_array    IN MDSYS.SDO_DIM_ARRAY,
                              point IN MDSYS.SDO_GEOMETRY,
                              point_dim_array    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION project_pt_array( geom_segment IN MDSYS.SDO_GEOMETRY,
                              point IN MDSYS.SDO_GEOMETRY,
                              tolerance IN NUMBER DEFAULT 1.0e-8)
                                   
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION project_pt_3d_array( geom_segment IN MDSYS.SDO_GEOMETRY,
                              dim_array    IN MDSYS.SDO_DIM_ARRAY,
                              point IN MDSYS.SDO_GEOMETRY,
                              point_dim_array    IN MDSYS.SDO_DIM_ARRAY)
                                   
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION project_pt_3d_array( geom_segment IN MDSYS.SDO_GEOMETRY,
                              point IN MDSYS.SDO_GEOMETRY,
                              tolerance IN NUMBER DEFAULT 1.0e-8)
                                   
   RETURN MDSYS.SDO_GEOMETRY_ARRAY DETERMINISTIC PARALLEL_ENABLE;



   --- level measure related functions

   FUNCTION number_of_measure(geom_segment  IN MDSYS.SDO_GEOMETRY, measure IN NUMBER)
   RETURN NUMBER PARALLEL_ENABLE;

   FUNCTION project_pt_by_index(geom_segment    IN MDSYS.SDO_GEOMETRY,
                       point           IN MDSYS.SDO_GEOMETRY,
               point_index    IN  INTEGER DEFAULT 1,    
                       tolerance       IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;  

   FUNCTION project_pt_3d_by_index(geom_segment    IN MDSYS.SDO_GEOMETRY,
                       point           IN MDSYS.SDO_GEOMETRY,
               point_index    IN  INTEGER DEFAULT 1,    
                       tolerance       IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;  


   FUNCTION locate_pt_level_m(geom_segment IN MDSYS.SDO_GEOMETRY,
                         measure      IN NUMBER,
                 measure_index IN INTEGER DEFAULT 1,    
                 dist_ratio    IN NUMBER DEFAULT 0,
                 offset           IN NUMBER DEFAULT 0,  
                         tolerance    IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION locate_pt_3d_level_m(geom_segment IN MDSYS.SDO_GEOMETRY,
                         measure      IN NUMBER,
                 measure_index IN INTEGER DEFAULT 1,    
                 dist_ratio    IN NUMBER DEFAULT 0,
                         tolerance    IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION clip_geom_segment_level_m(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER,
                      start_measure_index  IN INTEGER DEFAULT 1,
                      end_measure_index  IN INTEGER DEFAULT 1,
                      start_dist_ratio    IN NUMBER DEFAULT 0,
                      end_dist_ratio    IN NUMBER DEFAULT 0,            
                              tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION clip_geom_segment_3d_level_m(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER,
                      start_measure_index  IN INTEGER DEFAULT 1,
                      end_measure_index  In INTEGER DEFAULT 1,
                      start_dist_ratio    IN NUMBER DEFAULT 0,
                      end_dist_ratio    IN NUMBER DEFAULT 0,            
                              tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION dynamic_segment_level_m(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER,
                      start_measure_index  IN INTEGER DEFAULT 1,
                      end_measure_index  IN INTEGER DEFAULT 1,
                      start_dist_ratio    IN NUMBER DEFAULT 0,
                      end_dist_ratio    IN NUMBER DEFAULT 0,            
                              tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION dynamic_segment_3d_level_m(geom_segment  IN MDSYS.SDO_GEOMETRY,
                              start_measure IN NUMBER,
                              end_measure   IN NUMBER,
                      start_measure_index  IN INTEGER DEFAULT 1,
                      end_measure_index  IN INTEGER DEFAULT 1,
                      start_dist_ratio    IN NUMBER DEFAULT 0,
                      end_dist_ratio    IN NUMBER DEFAULT 0,            
                              tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




  --
  -- add function representation
  --

   FUNCTION define_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                 dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                 start_measure IN NUMBER ,
                                 end_measure   IN NUMBER )
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION define_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                 start_measure IN NUMBER ,
                                 end_measure   IN NUMBER ,
                                 tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION define_geom_segment(geom_segment  IN MDSYS.SDO_GEOMETRY,
                                 dim_array     IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


  FUNCTION define_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                 tolerance     IN NUMBER DEFAULT 1.0e-8)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION define_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                    dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                    start_measure IN NUMBER ,
                                    end_measure   IN NUMBER )
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION define_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                    start_measure IN NUMBER ,
                                    end_measure   IN NUMBER ,
                                    tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION define_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                    dim_array     IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION define_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                    tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




   FUNCTION redefine_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                   start_measure IN NUMBER ,
                                   end_measure   IN NUMBER )
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION redefine_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   start_measure IN NUMBER ,
                                   end_measure   IN NUMBER ,
                                   tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

   FUNCTION redefine_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   dim_array     IN MDSYS.SDO_DIM_ARRAY)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION redefine_geom_segment(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                   tolerance     IN NUMBER DEFAULT 1.0e-8)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;



   FUNCTION redefine_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY,
                                      start_measure IN NUMBER ,
                                      end_measure   IN NUMBER )
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION  redefine_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                      start_measure IN NUMBER ,
                                      end_measure   IN NUMBER ,
                                      tolerance     IN NUMBER DEFAULT 1.0e-8)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION redefine_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                      dim_array     IN MDSYS.SDO_DIM_ARRAY)
   RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;


   FUNCTION  redefine_geom_segment_3d(geom_segment  IN  MDSYS.SDO_GEOMETRY,
                                      tolerance     IN NUMBER DEFAULT 1.0e-8)
  RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;




END sdo_lrs;
/


SHOW ERRORS;

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


OHA YOOOO