2

Background: I am a non-GIS programmer, I do however directly work with numerous GIS products and data. Generally I primarily interact with the GIS data directly via the database (Oracle) through SQL Developer.

An issue came up recently that caused some confusion between myself and our GIS staff regarding Feature Datasets, which I now understand to be a "grouping" of feature classes (tables) on the GIS side of things. I can see the 'Feature Dataset' and the tables grouped under it in ArcGIS Pro but my question is where is this stored on the database side and how can I tell if a table is in a 'Feature dataset' purely via the database side?

2
  • 4
    How good are you at parsing XML via SQL queries?
    – Vince
    Feb 25, 2022 at 0:46
  • @Vince I was pleasantly surprised that I was able to query feature datasets (and their feature classes) without needing to parse XML...I was able to do it just by joining tables. I thought that was kinda cool.
    – User1974
    Mar 10, 2022 at 3:00

2 Answers 2

2

Using the documentation link that @MoreMeowbell provided, I came up with the query below:

select
    c.name as fd_name,
    a.name as fc_name
from
    sde.gdb_items a
left join
    sde.gdb_itemrelationships b
    on a.uuid = b.destid
left join
    sde.gdb_items c
    on b.originid = c.uuid
left join
    sde.gdb_itemtypes d
    on c.type = d.uuid
where
    d.name = 'Feature Dataset'
    --a.name like 'INFRASTR%'
order by
    fd_name,
    fc_name

enter image description here


The results match Catalog in ArcMap:

enter image description here


Is that what you were looking for? I'd be happy to hear about any ways that query could be improved.

Also, if you're looking for the XML definition, it can be found in SDE.GDB_ITEMS_VW in the DEFINITION column. I noticed that view was unnecessarily slow, so I submitted an idea to Esri: Improve performance of SDE.GDB_ITEMS_VW by adding function-based indexes.

1
+50

This page from the documentation should help answer your question:

Feature datasets in a geodatabase stored in Oracle

Feature datasets are grouped under the DatasetDefinitions tag in an XML document and defined by a DataElement tag of type esri:DEFeatureDataset.

Looking through Oracle, you would need to access the XML file in order to confirm if it is a feature dataset.

To generate the XML file, you could use some of the methods listed here: Generating XML using SQL Functions

1
  • Please link to Esri hosts for Esri documentation. The doc you have listed should not be publicly available.
    – Vince
    Mar 8, 2022 at 20:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.