Oracle11g 合并来自不同数据库的oracle表,该数据库对使用序列生成的主键具有联接条件

Oracle11g 合并来自不同数据库的oracle表,该数据库对使用序列生成的主键具有联接条件,oracle11g,Oracle11g,我有一个表需要从另一个数据库中的同一个表合并 条件是复合主键中的一列是按顺序生成的,在另一个数据库中可能不同 在这种情况下,如何同步其余列 前。 DB1: 表:SRE_服务选项 列:(选项集合ID、选项名称、选项值、值顺序) DB2: 表:SRE_服务选项 列:(选项集合ID、选项名称、选项值、值顺序) 主键: 选项设置ID、选项名称、值顺序 我应该如何编写merge语句?您在分布式数据库中犯了一个典型错误。简单地说,通过使用两个单独的序列,表中的主键不一致。只有当您的表在OPTION\u NA

我有一个表需要从另一个数据库中的同一个表合并

条件是复合主键中的一列是按顺序生成的,在另一个数据库中可能不同

在这种情况下,如何同步其余列

前。 DB1: 表:SRE_服务选项 列:(选项集合ID、选项名称、选项值、值顺序)

DB2: 表:SRE_服务选项 列:(选项集合ID、选项名称、选项值、值顺序)

主键: 选项设置ID、选项名称、值顺序


我应该如何编写merge语句?

您在分布式数据库中犯了一个典型错误。简单地说,通过使用两个单独的序列,表中的主键不一致。只有当您的表在
OPTION\u NAME
OPTION\u VALUE
VALUE\u ORDER
上分别是唯一的,您才能使用MERGE

您唯一的另一个希望是表之间不包含任何重复的信息。如果是这样,您可以简单地从一个插入到另一个


否则,你就是,我恐怕运气不好。我会重新设计您的数据库,这样就不可能将重复的信息发送到两个不同的表中,并使用单独的、不一致的代理键。

Ben,非常感谢您的快速响应。让我详细解释这个场景,这将有助于更好地理解需求。我有一位客户正在使用产品7.0版,他希望迁移最新的8.0版。我已经创建了参考数据库8.0,其中包含了该表到目前为止所做的所有更改,包括7.1、7.2等。现在作为自动化的一部分,我希望将该表中的最新更改合并到客户表中,以便客户表具有与产品相关的所有新数据,并且不会删除任何客户特定的数据。所以在这种情况下,我不能在两个数据库中使用相同的序列。另外,其他字段也不是单独唯一的。很抱歉,我看不出这会如何改变我的答案。如果有两个单独的序列填充一个表,则无法使这两个表保持同步。与其创建一个新表,为什么不在旧表上创建一个视图呢?在完成迁移之前,它可能会帮助解决您的问题。感谢您的帮助。我已经编写了手动插入/更新/删除,因为这两个数据库都是为不同的目的创建的,所以我认为视图不能满足这里的要求。