この図は、2つのレプリケーション・サイト(サイトAとサイトB)を示しています。サイトAでは、次の更新が実行されます。

UPDATE employees SET department_id = 20   WHERE last_name='Jones';

この図にあるemployees表では、Jonesという姓の社員のdepartment_id20に更新されています。

サイトAでは、この更新が実行されると、内部トリガーが起動します。内部トリガーのコードは、次のようなコードです。

if updating
      update@dba1(oldargs newargs)
      update@dba2(oldargs newargs)

if inserting
      insert@dba1(newargs)
      insert@dba2(newargs)

if deleting
      delete@dba1(oldargs)
      delete@dba2(oldargs)

サイトA上の内部トリガーによって、サイトB上のパッケージが起動されます。このパッケージによってサイトBのemployees表が更新され、Jonesという姓の社員のdepartment_id20に設定されます。

このパッケージのコードは、次のようなコードです。

update(oldargs newargs)
      UPDATE employees ...

insert(newargs)
      INSERT INTO employees ...

delete(oldargs)
      DELETE FROM employees ...