写了个triger
当对HR_DEPT_H表 UPDATING 时,想要更新另一个数据 完全一样的表HR_DEPT_H    UPDATE /*MIS.*/ HR_DEPT_H@nsc
       SET PARENT_DEPT_CD = :NEW.PARENT_DEPT_CD,
           APPL_START_DT  = :NEW.APPL_START_DT,
           DEPT_NM        = :NEW.DEPT_NM,
           DEPT_ENG_NM    = :NEW.DEPT_ENG_NM,
           DEPT_LOC       = :NEW.DEPT_LOC,
           BOSS_EMP_NO    = :NEW.BOSS_EMP_NO,
           BOSS_EMP_NO1   = :NEW.BOSS_EMP_NO1,
           SORT_NO        = :NEW.SORT_NO,
           STEP           = :NEW.STEP,
           DEPT_KIND_CD   = :NEW.DEPT_KIND_CD,
           LOC_CD         = :NEW.LOC_CD,
           APPL_END_DT = :NEW.APPL_END_DT
     WHERE rowid = :OLD.rowid;
     我是想按照rowid进行更新,但是更新表的时候报错说无效的rowid

解决方案 »

  1.   

    --既然是两个不同的表 那么rowid肯定是不可能相同的
    SQL> create table dept2 as select * from dept;表已创建。
    SQL> select rowid,t.* from dept t;ROWID                  DEPTNO DNAME          LOC
    ------------------ ---------- -------------- ------------
    AAAMfNAAEAAAAAQAAA         60 dfsdf          we
    AAAMfNAAEAAAAAQAAB         70 jiujiang
    AAAMfNAAEAAAAAQAAC         50 NANCHANG
    AAAMfNAAEAAAAAQAAD         10 ACCOUNTING     NEW YORK
    AAAMfNAAEAAAAAQAAE         15
    AAAMfNAAEAAAAAQAAF         25
    AAAMfNAAEAAAAAQAAJ         20 RESEARCH       DALLAS
    AAAMfNAAEAAAAAQAAK         30 SALES          CHICAGO
    AAAMfNAAEAAAAAQAAL         40 OPERATIONS     BOSTON已选择9行。SQL> select rowid,t.* from dept2 t;ROWID                  DEPTNO DNAME          LOC
    ------------------ ---------- -------------- ------------
    AAAOTHAAEAAABA8AAA         60 dfsdf          we
    AAAOTHAAEAAABA8AAB         70 jiujiang
    AAAOTHAAEAAABA8AAC         50 NANCHANG
    AAAOTHAAEAAABA8AAD         10 ACCOUNTING     NEW YORK
    AAAOTHAAEAAABA8AAE         15
    AAAOTHAAEAAABA8AAF         25
    AAAOTHAAEAAABA8AAG         20 RESEARCH       DALLAS
    AAAOTHAAEAAABA8AAH         30 SALES          CHICAGO
    AAAOTHAAEAAABA8AAI         40 OPERATIONS     BOSTON已选择9行。
      

  2.   

    rowid是对应的物理存储位置,都不是一张表rowid肯定不一样,没法按rowid进行更新.
      

  3.   

    用主键去更新吧 这两个通过rowid是关联不到的
      

  4.   

    rowid是系统为你的记录自动标识的一个字符 手动不能修改的
      

  5.   

    多谢各位了,后来在trigger中加procedures了