或者说有什么变量能代表修改前的数据 的?
例如:表中某个值为30,在Forms的数据块中修改成50(非SQL语句修改),在未提交commit的时候,怎样得到前期值30,跟后期值50呢?

解决方案 »

  1.   

    1:触发器实现
    2:分别获取前后值
    更新前值,查询即可获取
    RETURNING 可获取更新后值
    例: UPDATE emp
        SET sal = sal + 1000
        WHERE empno = 7499
        RETURNING ename, sal
        INTO empName, empSalary;
     
        DBMS_OUTPUT.put_line('Name of Employee: ' || empName);
        DBMS_OUTPUT.put_line('New Salary: ' || empSalary);
      

  2.   

    我使用的是Forms Builder开发的,用户在Forms里直接修改数据,然后使用commit更新到数据据里,我怎样在commit时获取得到更新前的数据呢?
    first_record;
    loop
      /* 这里如何获得每一行的数据的更改前数据?  */
      EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';
      next_record;
    end loop;
    commit;