先建一个DBLINK,连接两台数据库,进行数据操作.
create database link FROM_OTHER.US.ORACLE.COM   //FROM_OTHER是DBLINK的名字
connect to user_name      //连接到远程数据库的用户名
identified by "password"  //连接到远程数据库的密码
using 'server_name';      //用net manager配置连接远程数据库的实例名
然后再建一个触发器,实现本地新增数据时,同样新增到远程数据库表中.
create or replace trigger trigger_name
after insert on table_name
for each row
begin
    insert into table_name1@dblink_name values(:new.value1,:new.value2,...);
end trigger_name;

解决方案 »

  1.   

    to Hangfeng(寒风)
      你的意思是远程的计算机也需要装Oracle数据库,然后进行数据库的连接,想问一下DBLINK如何建立啊?
      不好意思,菜鸟问题,多谢指教!
      

  2.   

    远程的计算机如果使用其他数据库,比如SQL server,则不能用dblink和trigger直接插入到SQL Server了,需要通过ODBC等接口实现了,例如可以通过前台编程把oracle用定时器插入到SQL server中
      

  3.   

    就是说,远程计算机也需要装一台Oracle客户端,建立一下新表,然后在两台计算机的数据库建立连接,然后用触发器实现插入记录,是这样的吗?
      

  4.   

    我在服务器DBA Studio下的触发器中创建一个新的触发器,名称就是系统原来的Table1,时间为插入之后,触发器主体为:
    begin
      insert into table2 (field1,field2.....)
      values(:New.field1,:New.Field2.....);
    end;
    系统提示出错“.New不能用在表层”类似的出错信息,如何修改?
      

  5.   

    你是怎样建的,如果是手动创建的话,要选中FOR EACH ROW选项.
    如果是用代码建的话,不要漏了FOR EACH ROW 这句.
    因为:NEW关键字,只有在行级触发器中使用.
      

  6.   

    如果DBLINK某个时刻中断的话,那样数据就不同步了。
    DBLINK的优势在于即时,但是收网络条件影响。
    文件导入方法不受网络条件影响,但是数据反映不了最新的记录,更新太慢。
    方法三:利用表的自动复制功能,这个我也是才从书上看的,还不是很了解,不过这种方法不需要人为干预,系统自动同步,即使哪天网络中断了,只要等网络一恢复又能自动保持同步了。即时性稍微比DBLINK慢点,你可以设置每隔多久就同步一次,比如一分钟。当然,如果间隔太短的话对数据库性能还是有一定影响的。
      

  7.   

    to Hangfeng(寒风) 
      请问一下,是不是远程的计算机也需要装一个Oracle服务器,设置数据库,创建数据库连接,再创建触发器?
      

  8.   

    远程计算机可以使用别的数据库,同样是先配置dblink然后用trigger及时更新。
      

  9.   

    我在其它的计算机上也安装了Oracle服务器,在DBA的方案下做了一个数据库链路,进行测试结果为:"数据库链路未处于活动状态"是何原因?会不会是服务器连接不上远程计算机?