ArcGIS 10.1 sp1 with Oracle 11g

I've got a versioned feature class that I have discovered has a base table with a different schema than the corresponding A table. (A + registration_id from sde.table_registry)

The only possible explanation I can think of is someone went in and manually added/removed fields from the base table or the A table. I don't BELIEVE this has happened because there aren't many people with access to this database and I would hope they all know better than to do this on a versioned feature class/table...

Are there any other ways that this could happen? The only other item of interest is that this was just upgraded from 9.3.1 to 10.1. I'm in the process of trying to get a 9.3.1 backup used for the upgrade restored to see if that contains this problem...

I was initially alerted to this problem while trying to export data. The export to xml workspace fails completely without any info, but the copy feature class via Ctrl+C in ArcCatalog throws the error:

[ORA-00904: "A"."DUCT_MATERIAL":invalid identifier][GEOSPATIAL.SPAN]

I guess my question should be how did this happen and how do I fix it. I could probably go through and write some sql statements to add these fields, but this may not be the only table with this problem and it would be tedious. Any automated way of doing this?

  • What alerted you to this? Do you have an error? The only question I see is... Any other ways it could happen. Does the table operate correctly in arcmap? Do you have a full blown sde install (with this db instance registered)? Or just direct connect to sde schema? – Brad Nesom Aug 24 '13 at 6:18
  • Sorry for the lack of info. I'll update the question with more. Buy yeah, my question is kind of vague: how else could this happen. – Jeff Machamer Aug 24 '13 at 11:07
  • Well, I corrected the one table through an sql script and am exporting again. Hopefully it will have been the only one with that problem and will complete this time. – Jeff Machamer Aug 24 '13 at 11:35
  • That does appear to be the only one with that problem and I was able to export successfully now. – Jeff Machamer Aug 24 '13 at 19:13
  • I remember something back on 9.1 with oracle. It was a 904 error which is pretty general. My issue if i remember right was data being modified to array I had to run a script to convert it back, – Brad Nesom Aug 25 '13 at 5:32

If the A table is your base table, this new field may have been added by ArcSDE.

If an ArcSDE maintained row-id column already exists in the table, no additional columns are added to the base table. If there is no ArcSDE maintained row-id column, this column must be created or an existing column must be registered as the row-id column. If the table contains an integer column, this column can be used as the row-id column as long as the values in this column are non-empty unique values. The table register command is used to create a new column or use an existing column as the ArcSDE maintained row-id column. A base table supports versions when it is registered as a multi-versioned table in the TABLE_REGISTRY, and the associated state additions, deletions, and multiversion view tables have been created.

ArcSDE Developer Help: Delta Tables

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.