Select to view content in your preferred language

File Geodatabase views should support domains

07-27-2023 01:27 PM
Status: Open
Labels (1)
Occasional Contributor II

File geodatabases now support views (which is great), but the views can't have domains applied to them (this should be fixed).  If I have a view that pulls out a subset of data from a table and that table has domains applied to it, I should be able to apply those same domains to the file geodatabase view of the data subset, but this can't be done.  It makes (some) sense that views aren't editable, but since they are registered with the geodatabase I can't think of any reason why allowing domains to be applied to them shouldn't be possible.

Status changed to: Needs Clarification

Thanks for the Idea, @AJR 

Could you help me understand your desired workflow a bit more? Are you asking for the ability to edit fgdb database views? OR are you asking to see domain descriptions in the view as opposed to the domain codes?


A different take on this idea might be:
Need to access FGDB system tables using SQL. For example, provide a way to query for domain values (codes and descriptions) for a given domain.

We can do it in enterprise geodatabases like Oracle EGDBs.

What I do is create individual views to get the domain values (codes and descriptions) for a given domain.


The old way (EXTRACTVALUE has been deprecated in Oracle):

create or replace view d_atn_type as 
elect substr(extractvalue(codedvalues.column_value,'CodedValue/Code'),1,255) as code, substr(extractvalue(codedvalues.column_value,'CodedValue/Name'),1,255) as description from sde.gdb_items_vw i join sde.gdb_itemtypes it on i.type = it.uuid, table(xmlsequence(xmltype(definition).extract('/GPCodedValueDomain2/CodedValues/CodedValue'))) codedvalues where = 'ATN_TYPE'

The new way (using XMLTABLE):

create or replace view d_atn_type as
select cast(rownum as number(38,0)) as rownum_, x.code, x.description, as domain_name from sde.gdb_items_vw i cross apply xmltable( '/GPCodedValueDomain2/CodedValues/CodedValue' passing xmltype(i.definition) columns code varchar2(255) path './Code', description varchar2(255) path './Name' ) x where = 'ATN_TYPE'



Then in a query/view where I'm selecting data from an EGDB table or FC, I join from the field that has the domain code to the domain view to get the domain description:

    type as type_code,
    d.description as type_description
    infrastr.active_transportation a
left join
    infrastr.d_atn_type_vw d
    on a.type = d.code



But that's not possible with file geodatabases, since we can't access the system tables via SQL.



@SSWoodward - I'm not asking to be able to edit a file geodatabase view (although that would be nice), I'm looking to be able to apply domains to a file geodatabase view.  So in answer to your question, I'm looking to see the domain descriptions displayed when viewing the fgdb view data (rather than the real data values).

Status changed to: Open

Thanks for clarifying @AJR 

I've moved this back to open to gain support. 


And really, this isn't file geodatabase specific issue.  Domains should be able to be applied to enterprise geodatabase registered views.