触发器能操作本表吗?
我想在表T1创建触发器,判断当插入数据时workdate(日期)字段的值必须为月末,不然不插入
这个可行吗?应该怎样写?

解决方案 »

  1.   

    还有,请问用sqlldr插入数据能触发insert吗??
      

  2.   

    CREATE TABLE test(last_date VARCHAR2(8));
    CREATE OR REPLACE TRIGGER xtest 
     BEFORE INSERT ON test FOR EACH ROW 
    DECLARE
    v_date VARCHAR2(8);
    BEGIN 
      SELECT To_Char(Last_Day(To_Date(:NEW.last_date)),'yyyymmdd') INTO v_date FROM dual;
      IF v_date!=:NEW.last_date THEN 
        raise_application_error(-20102,'must be the last day of month-->');
      END IF;
    END xtest;INSERT INTO test VALUES ('20120630');
    SELECT * FROM test;
    LAST_DATE
    20120630INSERT INTO test VALUES ('20120706');
    18 13 ORA-20102: must be the last day of month-->
    ORA-06512: 在 "U1CP2.XTEST", line 6
    ORA-04088: 触发器 'U1CP2.XTEST' 执行过程中出错      Total execution time 0.016 sec.