CREATE OR REPLACE TRIGGER "T_GINDEX_ID_TRIG" BEFORE INSERT OR UPDATE ON "T_GINDEX" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW DECLARE
v_newVal NUMBER(12) := 0;
v_incval NUMBER(12) := 0;
BEGIN
IF INSERTING AND :new.ID IS NULL THEN
SELECT t_gindex_ID_1SEQ.NEXTVAL INTO v_newVal FROM DUAL;
IF v_newVal = 1 THEN
SELECT NVL(max(ID),0) INTO v_newVal FROM t_gindex;
v_newVal := v_newVal + 1;
LOOP
EXIT WHEN v_incval>=v_newVal;
SELECT t_gindex_ID_1SEQ.nextval INTO v_incval FROM dual; END LOOP;
一直报错:[Err] ORA-24344: success with compilation error
参考:http://bbs.csdn.net/topics/390828604