环境是oracle10 SQLserver2000 通过透明网关连接。其中test1在oracle中通过透明网关创建了视图视图名为view_test1
SQLserver2000
表test1
username   title
---------------------
test1      test1
test2      test2
test3      test3
test4      test4
test5      test5oracle10
表test2
nameid   typess
----------------------
test1      tt1
test2      tt2
test4      tt4
test8      tt8
test9      tt9
我想要的结果用存储过程做:
oracle10
表test2
nameid   typess
----------------------
test1      tt1
test2      tt2
test3      tt3
test4      tt4
test5      tt5
test8      tt8
test9      tt9
在view_test1上创建触发器游标检查新插入的数据定时执行存储过程。

解决方案 »

  1.   

    参考这个,很详细。
    http://www.ixdba.net/article/75/750.html
      

  2.   

    SQL> CREATE OR REPLACE TRIGGER INSTEADOF_T 
    2 INSTEAD OF INSERT OR UPDATE OR DELETE ON T 
    3 REFERENCES OLD AS OLD NEW AS NEW 
    4 FOR EACH ROW
    5 BEGIN
    6 IF INSERTING THEN
    7 INSERT INTO T2 VALUES (:NEW.ID, :NEW.NAME, :NEW.OTHERS);
    8 ELSIF UPDATING THEN
    9 UPDATE T2 SET ID = :NEW.ID, NAME = :NEW.NAME, OTHERS = :NEW.OTHERS
    10 WHERE ID = :OLD.ID;
    11 ELSIF DELETING THEN
    12 DELETE T2 WHERE ID = :OLD.ID;
    13 END IF;
    14 END;
    15 /