I want to synchronize some datasets and feature classes from Oracle to MS SQL Server using ArcMap replication tools. Both databases are geodatabase enabled. I don't want to replicate/synchronize data in real time but once a day. I have created one-way replica(parent to child) and it works fine for only the changes that are made from ArcMap, but when I make changes in the table/feature class from Oracle (SQL Developer) i.e updating the attributes of a record, those changes are not synchronized. How can I synchronize all the changes either made from ArcMap or from SQL Developer?

  • There is no way for versioned replication to transmit changes for which it has never been notified. You should not be violating versioning integrity from the SQL prompt. All edits to versioned tables should be made through versioning. See the documentation on the use of versioned views and SQL editing. – Vince May 15 '19 at 12:30
  • 1
    I registered the table in ArcMap as versioned, made some changes, then unregistered and moved the edits to base(default version). When I run synchronization those changes are not reflected? Although changes were made in that version even then the synchronization did not reflect the changes. So do i have to register it only once and then make edits in that version only, either from ArcMap or anywhere else? – Ayaz49 May 15 '19 at 12:52
  • Unregistering destroys any unsaved changes, and replication is incompatible with Move Edits to Base. Versioning is a change tree model, so any dependent version would also work. There are a number of documents and classes on versioning workflows; too large a topic for a comment. – Vince May 15 '19 at 13:54
  • 1
    When unregistering I save the changes to the base, again I register as versioned with move edits to base option unchecked and run synchronization and no changes are made in the replica. – Ayaz49 May 15 '19 at 14:33
  • Again: Neither unregistering nor save edits to base will preserve any changes to permit replica transmission. – Vince May 15 '19 at 14:54