Question

Oracle type 3007 detection

  • 16 September 2014
  • 4 replies
  • 19 views

I have an oracle table which is supposed to be type 3003 but has a type 3007 in it somewhere.  How can I test for type 3007, multi-polygon?

 

I'm running 2012 SP 2 build 12238 64 and 2013 SP4 build 13547.

 

 

 

Cheers,

4 replies

David,

 

I have tried that with no luck.  All my features are oracle_area.  Here is the error log from my original workbench:

 

2014-09-17 09:01:11|   2.5|  0.0|ERROR |Execution of statement `UPDATE TOPO_OWNER.VEGETATION_2500 SET SUB_CLASS = :SUB_CLASS, SCALE = :SCALE, RELIABILITY_DATE = :RELIABILITY_DATE, ACCURACY_HORIZONTAL = :ACCURACY_HORIZONTAL, ACCURACY_VERTICAL = :ACCURACY_VERTICAL, STATUS = :STATUS, SOURCE = :SOURCE, GEOMETRY = :GEOMETRY WHERE UFI = :UFI' did not succeed; error was `ORA-29875: failed in the execution of the ODCIINDEXINSERT routine

 

ORA-13375: the layer is of type [3003] while geometry inserted has type [3007]

 

ORA-06512: at "TOPO_OWNER.OVM_UPDATE_1013", line 3

 

ORA-04088: error during execution of trigger 'TOPO_OWNER.OVM_UPDATE_1013''. (serverType=`ORACLE8I', serverName=`dcdbprod', userName=`PW_RWK', password=`***', dbname=`')

 

2014-09-17 09:01:11|   2.5|  0.0|INFORM|FME Session Duration: 5.6 seconds. (CPU: 2.2s user, 0.2s system)

 

2014-09-17 09:01:11|   2.5|  0.0|INFORM|END - ProcessID: 1652, peak process memory usage: 189040 kB, current process memory usage: 110588 kB

 

 

Execution of statement `UPDATE TOPO_OWNER.VEGETATION_2500 SET SUB_CLASS = :SUB_CLASS, SCALE = :SCALE, RELIABILITY_DATE = :RELIABILITY_DATE, ACCURACY_HORIZONTAL = :ACCURACY_HORIZONTAL, ACCURACY_VERTICAL = :ACCURACY_VERTICAL, STATUS = :STATUS, SOURCE = :SOURCE, GEOMETRY = :GEOMETRY WHERE UFI = :UFI' did not succeed; error was `ORA-29875: failed in the execution of the ODCIINDEXINSERT routine

 

ORA-13375: the layer is of type [3003] while geometry inserted has type [3007]

 

ORA-06512: at "TOPO_OWNER.OVM_UPDATE_1013", line 3

 

ORA-04088: error during execution of trigger 'TOPO_OWNER.OVM_UPDATE_1013''. (serverType=`ORACLE8I', serverName=`dcdbprod', userName=`PW_RWK', password=`***', dbname=`')

 

Program Terminating

 

 

Translation FAILED.

 

 

Don't know where to go from here.

 

 

Thanks,

 

 

Russell
Userlevel 4
Hi,

 

 

if your geometries are of type SDO_GEOMETRY (Oracle spatial), you could try something like

 

 

SELECT * FROM my_polygons a WHERE a.geometry.sdo_gtype = 3007;

 

 

You can either put this into a SQLCreator or execute it from e.g. SQLDeveloper, TOAD, etc.

 

 

David
David,

 

Thanks for that tip.  It didnt solve the problem directly but put me on to another approach.

 

 

Cheers,

 

The query is: 

SELECT 
    A.<GEOMETRY_COLUMN>.GET_DIMS()
    || A.<GEOMETRY_COLUMN>.GETLRS_DIM() 
    || '0' 
    || A.<GEOMETRY_COLUMN>.GET_GTYPE() AS SDO_GTYPE
FROM 
    <SPATIAL_TABLE> A;

The methods will not work unless you use an alias.

Reply