Skip to main content
FMEers,

 

 

I have a heaping helping of parcel data that I would like to query or filter by extent BEFORE FME reads every feature and builds its own index (which is what I perceive it is doing because it loads all million plus features before anything gets piped to anywhere) 

 

 

I've set the min,max,x,y values in the Oracle Spatial reader, but it seems to completely ignore it.   I loaded the ALL_SDO_GEOM_METADATA table with the appropriate DIM_INFO and created spatial indexes.   FME still reads every feature. 

 

 

I have Oracle Locator, but not Oracle Spatial Object.   Does the reader require the Spatial Object product to do filtering?

 

 

BUT--

 

 

When I use a subquery with SDO_ANYINTERACT in the select statement for a feature_type, THEN I get the filtering I want.   Trouble is, there are more than just parcels, so I need to add a subquery to every other feature in the workspace, querying to get the same MBR a gazillion times:

 

 

select * from my_geometry a join my_data b on a.ID=b.ID where b.data_filter='Filter Value' and

 

SDO_ANYINTERACT(a.geom, (select SDO_AGGR_MBR(geom) from mygrids where grid_id='myvalue')) = 'TRUE'

 

 

What I'd like to do is get the MBR in the pre-execution select statement and then somehow use that with parameters for all the other features queried by the reader.

 

 

Anybody see a way to do what I think I want?

 

 

Thanks,

 

Brad

 

Hi,

 

 

Basically the Oracle Spatial reader will preform a similar SQL statement (SDO_ANYINTERACT) when using the min/max x/y boudingbox.

 

If I understand you correctly, you want features (MBR) to trigger the database to return features spatially related to the MBR features. For that I would featch the MBR features and use them as triggers for the FeatureReader.

 


Reply