Skip to main content
Question

Oracle type 3007 detection

  • September 16, 2014
  • 4 replies
  • 67 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,
This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

4 replies

  • Author
  • September 16, 2014
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

david_r
Celebrity
  • September 17, 2014
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

  • Author
  • September 18, 2014
David,

 

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

 

 

Cheers,

 


  • June 5, 2019

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.