MINI MINI MANI MO
Rem sdoaggrh.sql
Rem
Rem Copyright (c) 2000, 2017, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem sdoaggrh.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/sdoaggrh.sql
Rem SQL_SHIPPED_FILE: md/admin/sdoaggrh.sql
Rem SQL_PHASE: SDOAGGRH
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 yhu 09/25/17 - enh 13732846: SDO_AGGR_CONCAVEHULL()
Rem yhu 05/22/17 - remove geom and dim
Rem rjanders 05/10/17 - #26037683: Raise 'when other' exceptions
Rem rjanders 03/23/17 - #25437999: Remove 'when others then NULL'
Rem handlers
Rem rjanders 03/09/17 - Add missing SQL_FILE_METADATA information
Rem yhu 09/01/15 - LRG 14327407: ORA-21780: Maximum number of object
Rem durations exceeded in sdo_aggr_concat_lines
Rem yhu 06/23/14 - bug 18922577: parallel aggr_union
Rem rjanders 09/16/13 - OCCS: Remove hardtabs
Rem rjanders 03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem initialization
Rem sravada 07/29/04 - add exception handlers
Rem sravada 04/23/03 - change to SDO_AGGR_CONCAT_LINES
Rem sravada 04/11/03 - add AggrConcat
Rem sravada 04/12/02 - add type synonyms
Rem sravada 04/11/01 - update the sdoaggrtype
Rem sravada 12/21/00 - move union/cvxhull to oci
Rem jcwang 09/29/00 - Add convexhull, centroid aggrgrate functions
Rem sravada 07/27/00 - change according to UDAG signature change
Rem for Terminate call
Rem jcwang 07/05/00 - Add LRS aggregate function for concatenation
Rem sravada 06/28/00 - Add headers for AggrUnion and Generic AggrType
Rem sravada 06/28/00 - Created
Rem
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@@?/rdbms/admin/sqlsessstart.sql
Rem ********************************************************************
Rem This is a generic type used for all aggregate functions requiring
Rem Geometry and Diminfo as arguements.
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'create type SDOAggrType as Object (
Geometry mdsys.sdo_geometry,
Tolerance NUMBER) ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
end;
end;
/
grant execute on SDOAggrType to public;
CREATE OR REPLACE PUBLIC SYNONYM SDOAggrType for MDSYS.SDOAggrType;
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'create type SDOAggr AUTHID current_user as Object
(
Geometry mdsys.sdo_geometry,
Diminfo mdsys.sdo_dim_array,
call_count number,
call_method varchar2(128),
call_type number,
call_value number,
static function odciaggregateinitialize(sctx OUT SDOAggr) return number,
member function odciaggregateiterate(self IN OUT SDOAggr,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN SDOAggr,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT SDOAggr,
valueB IN SDOAggr) return number) ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
end;
end;
/
show errors;
Rem type header for Aggregate UNION
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type aggrunion ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrUnion AUTHID current_user as Object
(
context raw(4),
--Geometry mdsys.sdo_geometry,
--Dim mdsys.sdo_dim_array,
static function odciaggregateinitialize(sctx IN OUT AggrUnion) return number,
member function odciaggregateiterate(self IN OUT AggrUnion,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrUnion,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrUnion,
sctx2 IN AggrUnion) return number,
--member function odciaggregatewrapcontext(self IN OUT AggrUnion)
-- return number,
member function sdoaggregateiterate(self IN OUT AggrUnion,
geom IN mdsys.sdo_geometry, dim IN mdsys.SDO_DIM_ARRAY)
return number);
/
show errors;
Rem Type header for Aggregate MBR
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrMBR ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrMBR AUTHID current_user as Object
(
context mdsys.SDOAggr,
static function odciaggregateinitialize(sctx OUT AggrMBR) return number,
member function odciaggregateiterate(self IN OUT AggrMBR,
geom IN mdsys.sdo_geometry) return number,
member function odciaggregateterminate(self IN AggrMBR,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrMBR,
valueB IN AggrMBR) return number);
/
show errors;
Rem Type header for Aggregate LRS concatenation
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrLRSConcat ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrLRSConcat AUTHID current_user as Object
(
context mdsys.SDOAggr,
static function odciaggregateinitialize(sctx OUT AggrLRSConcat) return number,
member function odciaggregateiterate(self IN OUT AggrLRSConcat,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrLRSConcat,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrLRSConcat,
valueB IN AggrLRSConcat) return number);
/
show errors;
Rem Type header for Aggregate LRS concatenation
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrLRSConcat3D ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrLRSConcat3D AUTHID current_user as Object
(
context mdsys.SDOAggr,
static function odciaggregateinitialize(sctx OUT AggrLRSConcat3D) return number,
member function odciaggregateiterate(self IN OUT AggrLRSConcat3D,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrLRSConcat3D,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrLRSConcat3D,
valueB IN AggrLRSConcat3D) return number);
/
show errors;
Rem Type header for Aggregate COnvexHull
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrConvexHull ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrConvexHull AUTHID current_user as Object
(
context mdsys.SDOAggr,
static function odciaggregateinitialize(sctx OUT AggrConvexHull) return number,
member function odciaggregateiterate(self IN OUT AggrConvexHull,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrConvexHull,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrConvexHull,
valueB IN AggrConvexHull) return number);
/
show errors;
Rem Type header for Aggregate Centroid
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrCentroid ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')8]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrCentroid AUTHID current_user as Object
(
context mdsys.SDOAggr,
static function odciaggregateinitialize(sctx OUT AggrCentroid) return number,
member function odciaggregateiterate(self IN OUT AggrCentroid,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrCentroid,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrCentroid,
valueB IN AggrCentroid) return number);
/
show errors;
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type AggrConcat ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE || ')9]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrConcat AUTHID current_user as Object
(
context mdsys.SDOAggr,
-- use PL/SQL instead of Safe-C
-- context raw(4),
static function odciaggregateinitialize(sctx IN OUT AggrConcat)
return number,
member function odciaggregateiterate(self IN OUT AggrConcat,
geom IN mdsys.SDO_GEOMETRY) return number,
member function odciaggregateterminate(self IN AggrConcat,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrConcat,
sctx2 IN AggrConcat) return number);
/
show errors;
Rem type header for Aggregate CONCAVEHULL
declare
type_not_found exception;
pragma exception_init(type_not_found, -04043);
begin
begin
execute immediate
'drop type aggrconcavehull ';
exception
when type_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[sdoaggrh.sql(' || $$PLSQL_LINE ||
')10]: ' || SQLERRM); RAISE;
end;
end;
/
create type AggrConcavehull AUTHID current_user as Object
(
context raw(4),
static function odciaggregateinitialize(sctx IN OUT AggrConcavehull)
return number,
member function odciaggregateiterate(self IN OUT AggrConcavehull,
geom IN mdsys.SDOAggrType) return number,
member function odciaggregateterminate(self IN AggrConcavehull,
returnValue OUT mdsys.sdo_geometry,
flags IN number)
return number,
member function odciaggregatemerge(self IN OUT AggrConcavehull,
sctx2 IN AggrConcavehull) return number,
member function sdoaggregateiterate(self IN OUT AggrConcavehull,
geom IN mdsys.sdo_geometry, dim IN mdsys.SDO_DIM_ARRAY)
return number);
/
show errors;
Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@?/rdbms/admin/sqlsessend.sql
Rem ********************************************************************
OHA YOOOO