关于写触发器,本论坛有很多。
看文档:
Application Developer’s Guide - Fundamentals
下载地址:
http://gigabase.idi.ntnu.no/oradoc/nav/docindex.htm
我给你个例子:
CREATE OR REPLACE TRIGGER Audit_emp
AFTER INSERT OR UPDATE OR DELETE ON Emp_tab
FOR EACH ROW
DECLARE
Time_now DATE;
Terminal CHAR(10);
BEGIN
-- get current time, and the terminal of the user:
Time_now := SYSDATE;
Terminal := USERENV(’TERMINAL’);
-- record new employee primary key
IF INSERTING THEN
INSERT INTO Audit_table
VALUES (Audit_seq.NEXTVAL, User, Time_now,
Terminal, ’Emp_tab’, ’INSERT’, :new.Empno);
-- record primary key of the deleted row:
ELSIF DELETING THEN
INSERT INTO Audit_table
VALUES (Audit_seq.NEXTVAL, User, Time_now,
Terminal, ’Emp_tab’, ’DELETE’, :old.Empno);
-- for updates, record the primary key
-- of the row being updated:
ELSE
INSERT INTO Audit_table
VALUES (audit_seq.NEXTVAL, User, Time_now,
Terminal, ’Emp_tab’, ’UPDATE’, :old.Empno);
-- and for SAL and DEPTNO, record old and new values:
IF UPDATING (’SAL’) THEN
INSERT INTO Audit_table_values
VALUES (Audit_seq.CURRVAL, ’SAL’,
:old.Sal, :new.Sal);
ELSIF UPDATING (’DEPTNO’) THEN
INSERT INTO Audit_table_values
VALUES (Audit_seq.CURRVAL, ’DEPTNO’,
:old.Deptno, :new.DEPTNO);
END IF;
END IF;
END;
你可以

解决方案 »

  1.   

    那这个触发器怎么用到Developer/2000里面去啊?
      

  2.   

    我知道是数据库对象来的,但是怎么能使Developer/2000刷新查询呢?
      

  3.   

    Oracle中还没有听说过刷新查询,用JOB?
    刷新一般为操作系统所用,现已到了Oracle应用层了。
    帮你up一下。
      

  4.   

    先用create_timer 生成一个定时器。如:
    declare
      id timer;
    begin
      id :=create_timer('timer_aaa',1000);
    end;
    第二个参数是毫秒。在form 级可以创建一个Trigger:when-timer-expired ,写定时器执行时的动作。
      

  5.   

    同意jhc(老猫)
    定时器是指在form 级创建一个Trigger:Pre-Form
    那里创建的
      

  6.   

    在WHEN-NEW-FORM-INSTANCE里创建timer
    DECLARE
      timer_id      timer;
    BEGIN
    timer_id := create_timer('KEYWORD',200000,REPEAT);
    END;加入form级触发器
    WHEN-TIMER-EXPIRED
    在这里写代码就可以了!