In my scenario Geodatabase is 10.3, Oracle 11g database.
Solved! Go to Solution.
Ruling out ArcGIS Client and Python, as George mentioned, there is no safe or supported way of doing this.
Modify geodatabase domains as in:
- add new domains?
- delete existing domains?
- Add new coded values?
What about python scripting?
Modify as in updating existing domains by adding, inserting, removing, and sorting code-description pairs
(Whether export to table-->modify exported copy-->delete existing domain-->create new domain with identical name-->import with the same domain name would arrive at the same result I don't know. But I can't use ArcGIS GP Tools to do this because they don't seem to honor the oracle "become user" syntax I need to use for connecting to the geodatabase.)
Thanks for your help.
Ruling out ArcGIS Client and Python, as George mentioned, there is no safe or supported way of doing this.
Okay, thanks for the confirmation George Thompson and Asrujit SenGupta.
In case you know of any workarounds, here is my use case: Most GP tools have no problem with oracle become user syntax, but the tools "Table to Domain" and "Sort Coded Value Domain" don't recognize it. For example, if Joe is a power user in the electrical utilities department he connects with username Joe123[electrical]. Works great, except when he needs to run one of these tools against a domain owned by electrical he gets the error "Domain may not be locked as the user is not the owner" unless he actually could connect as electrical . I say could because it isn't a viable option due to IT policy.
Tobias,
Who owns the domain? Only the owner of the domain (or i think the Geodatabase Administrator) can make changes to existing domains.
-George
When a new domain is created, the owner of that domain—that is, the user who created it—is recorded. Only the owner of an attribute domain can delete or modify it. This only applies to enterprise geodatabases; in file or personal geodatabases any user can delete or modify a domain. The Domain Properties dialog box lists the owner of each domain when connected to enterprise geodatabases.
Modifying and deleting attribute domains—ArcGIS Help | ArcGIS for Desktop
ESRI really needs to create a mechanism to change the ownership of enterprise domains. That request was submitted as an enhancement several years ago but there has been no movement on it! If the owner of a domain leaves and their network login is deleted there is no way to delete or modify their domains without hacking around in the GDB tables. Not safe, but the only option available.
The geodatabase domain is owned by a user account that does not represent an individual (in my above example this is electrical). This "functional" account is granted BECOME USER privileges in oracle, so that certain user accounts (in my example this is Joe123) can assume the identity of electrical (in the above example Joe has a connection file where the username field states Joe123[electrical] ). ArcMap GP tools that modify geodatabase domains don't seem to understand this syntax. They don't understand that in my example it is Joe123 assuming the identity of electrical who is connecting to the database, and that this connection should be allowed to modify a geodatabase domain that is owned by user electrical . Hope this clarifies it a bit. Thanks.
Hi Tobias,
I would say that there is not a "safe" way to modify the domains in the geodatabase outside of the ArcGIS client (this would include the ways that Asrujit SenGupta mentioned)
Editing the geodatabase outside the ArcGIS client is also unsupported.
Here is some more documentation on the domains:
Domains in a geodatabase stored in Oracle—Help | ArcGIS for Desktop
System tables of a geodatabase stored in Oracle—Help | ArcGIS for Desktop
SQL access to enterprise geodatabase data—Help | ArcGIS for Desktop
Hope this helps.
-George