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.
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.