SQL> connect STRMADMIN/STRMADMIN@db1.com Connected. SQL> SQL> SQL> !cat creat_strm.sql declare cscn NUMBER; begin dbms_streams_adm.set_up_queue(queue_name=>'capture_queue', queue_user=>'strmadmin'); dbms_streams_adm.set_up_queue(queue_name=>'apply_queue', queue_user=>'strmadmin'); dbms_apply_adm.create_apply(queue_name=>'strmadmin.apply_queue', apply_name=>'apply_hr_jobs',apply_captured=>FALSE); dbms_streams_adm.add_table_rules(table_name=>'hr.jobs', streams_type=>'apply', streams_name=>'apply_hr_jobs', queue_name=>'strmadmin.apply_queue', source_database=>'db2.com'); dbms_streams_adm.add_table_propagation_rules(table_name=>'hr.jobs',streams_name=> 'send_hr_jobs',source_queue_name=>'strmadmin.capture_queue', destination_queue_name=>'strmadmin.apply_queue@db2.com', source_database=>'db1.com', queue_to_queue=>TRUE); dbms_streams_adm.add_table_rules(table_name=>'hr.jobs',streams_type=>'capture', streams_name=>'sync_capture', queue_name=>'strmadmin.capture_queue'); cscn :=DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER(); DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@DB2.COM(source_object_name=>'hr.jobs', source_database_name =>'db1.com', instantiation_scn=>cscn); DBMS_APPLY_ADM.START_APPLY( apply_name =>'apply_hr_jobs'); end; / SQL> @creat_strm.sql PL/SQL procedure successfully completed. SQL> SQL> SQL> connect STRMADMIN/STRMADMIN@db2.com Connected. SQL> !cat creat_strm.sql declare cscn NUMBER; begin dbms_streams_adm.set_up_queue(queue_name=>'capture_queue', queue_user=>'strmadmin'); dbms_streams_adm.set_up_queue(queue_name=>'apply_queue', queue_user=>'strmadmin'); dbms_apply_adm.create_apply(queue_name=>'strmadmin.apply_queue', apply_name=>'apply_hr_jobs',apply_captured=>FALSE); dbms_streams_adm.add_table_rules(table_name=>'hr.jobs', streams_type=>'apply', streams_name=>'apply_hr_jobs', queue_name=>'strmadmin.apply_queue', source_database=>'db2.com'); dbms_streams_adm.add_table_propagation_rules(table_name=>'hr.jobs',streams_name=> 'send_hr_jobs',source_queue_name=>'strmadmin.capture_queue', destination_queue_name=>'strmadmin.apply_queue@db2.com', source_database=>'db1.com', queue_to_queue=>TRUE); dbms_streams_adm.add_table_rules(table_name=>'hr.jobs',streams_type=>'capture', streams_name=>'sync_capture', queue_name=>'strmadmin.capture_queue'); cscn :=DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER(); DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@DB2.COM(source_object_name=>'hr.jobs', source_database_name =>'db1.com', instantiation_scn=>cscn); DBMS_APPLY_ADM.START_APPLY( apply_name =>'apply_hr_jobs'); end; / SQL> @creat_strm.sql PL/SQL procedure successfully completed. SQL> connect system/admin@db1.com Connected. SQL> update hr.jobs set JOB_TITLE='President_new' where JOB_TITLE='President'; 1 row updated. SQL> commit; Commit complete. SQL> connect system/admin@db2.com Connected. SQL> select * from hr.jobs; JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY ---------- ----------------------------------- ---------- ---------- AD_PRES President 20000 40000 AD_VP Administration Vice President 15000 30000 AD_ASST Administration Assistant 3000 6000 FI_MGR Finance Manager 8200 16000 FI_ACCOUNT Accountant 4200 9000 AC_MGR Accounting Manager 8200 16000 AC_ACCOUNT Public Accountant 4200 9000 SA_MAN Sales Manager 10000 20000 SA_REP Sales Representative 6000 12000 PU_MAN Purchasing Manager 8000 15000 PU_CLERK Purchasing Clerk 2500 5500 JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY ---------- ----------------------------------- ---------- ---------- ST_MAN abc111 5500 8500 ST_CLERK Stock Clerk 2000 5000 SH_CLERK Shipping Clerk 2500 5500 IT_PROG Programmer 4000 10000 MK_MAN Marketing Manager 9000 15000 MK_REP Marketing Representative 4000 9000 HR_REP Human Resources Representative 4000 9000 PR_REP Public Relations Representative 4500 10500