3

In ArcMap, is it possible to directly open an edit session on a feature class in an Oracle database connection if that Oracle database is not managed in SDE?

It is of course easy to edit the features in a local file geodatabase copy, but I want to perform edits directly on features in a table in Oracle that will not be managed in SDE, if possible.

Currently, I receive "Warning: The workspace containing this data cannot be edited" when attempting to open the edit session.

  • No, it is not possible. Query Layers are read-only. You can submit SQL to be processed using an arcpy.ArcSDESQLExecute cursor, but that is not an Edit session. – Vince Dec 15 '17 at 21:06
  • 1
    Maybe try QGIS... – DPSSpatial Dec 15 '17 at 21:53
6

No, it is not possible to directly edit Query Layers (in any database) using the standard graphical editing tools of ArcMap/arcpy (as if they were shapefile, file geodatabase, or enterprise-enabled feature classes). The underlying ArcSDE technology is the mechanism that permits both versioned and non-versioned editing of database tables -- No ArcSDE, no editing.

There are, however, two ways to indirectly edit database tables within the framework of Query Layers. The first is to use a Feature Access enabled map service (an ArcGIS Server feature service). This mechanism requires you to publish a Query Layer MXD to an ArcGIS Server host with "Feature Access" enabled, which provides the write capability REST service (to which Desktop tools and web APIs are clients): Esri documentation graphic

See this blog post for more details on the evolution of Query Layers.

The second way to edit Query Layer data is not for the faint of heart: Use a SQL database cursor via arcpy.ArcSDESQLExecute to send INSERT/UPDATE/DELETE SQL statements directly to the database.

  • When you say "The underlying ArcSDE technology is the mechanism that permits both versioned and non-versioned editing of database tables -- No ArcSDE, no editing.", are you implying that the database must be geodatabase-enabled in order to edit the data? – Wilson Dec 23 '17 at 2:28
  • Or maybe the fact that one has SDE means that one has enabled the database as a geodatabase. – Wilson Dec 23 '17 at 2:32
  • @Wilson The question was about a "datatbase not managed in SDE". This was assumed to mean "without an enterprise geodatabase". Technically, ArcSDE technology is used to implement Query Layers as well, but without table registration, ArcMap cannot directly edit tables. Whether one has an unused license is not something the software can detect, but it is trivial to test for sde.version at connection. I don't know whether Query Layer access is possible if an enterprise geodatabase is present, but the license has expired (either way, edit would not be possible). – Vince Dec 23 '17 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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