oramerge – Three-way merging of schemas


oramerge can be used for merging the changes between two Oracle database schemas into a third one. Depending on the existance/non-existance of schema objects in the three schemas oramerge does the right thing. If a schema objects exists in all three schemas, the external tool merge3 will be used for creating a merged version of the object (except for tables where the appropriate ALTER TABLE statements will be output if possible).


oramerge supports the following options:


Old version of database schema


New version of database schema


Schema into which changes should be merged

-v <flag>, --verbose <flag>

Produces output (on stderr) while the database is read or written. (Valid flag values are false, no, 0, true, yes or 1)

-c <mode>, --color <mode>

Should the output (when the -v option is used) be colored? If auto is specified (the default) then the output is colored if stderr is a terminal. Valid modes are yes, no or auto.

-k <flag>, --keepjunk <flag>

If false (the default), database objects that have $ or SYS_EXPORT_SCHEMA_ in their name will be skipped (otherwise these objects will be considered as merge candidates). (Valid flag values are false, no, 0, true, yes or 1)


Output a script that merges the changes between user@db and user2@db2 into user3@db3:

$ oramerge user/pwd@db user2/pwd2@db2 user3/pwd3@db3 -v >db.sql