这个是原贴的地址
http://topic.csdn.net/u/20080714/09/24af661d-063f-49f3-81b2-159d8cf01d9f.html
为什么建好之后总是会进行死循环的啊,我之前在SqlServer中建的是可以运行了,而且没有错误,是不是Oracle10G原理和Sql不同???

解决方案 »

  1.   

    Oracle触发器,新的DD在:NEW中,旧的DD在:OLD中,不是inserted和deleted
      

  2.   

    create or replace trigger Trig_Input_tb_SendSH
    before insert On tb_SendSH
    for each row
    declare
      inta number(5);
    begin
        SELECT count(*) into inta  FROM tb_SimNumber where tb_SimNumber.TEL = :new.TEL;
        if inta = 0 then
            begin
                insert into tb_SendSjz--表内容;
            END;
        else
            BEGIN
                insert into tb_SendSH-- 另外一表的内容;
            END;
        end if;
    end;
      

  3.   

    trigger在oracle和sql server中一致的呀  
    就一个判断 怎末进入死循环了???
    要不你重启机器 ,再运行得
      

  4.   

    是在插入记录时死循环,下面是死循环报的错误
    123456
     insert into tb_sendsh values('01-dec-98','01-dec-98','12345','123456789',1,2,3,4,5)
                 *
    第 1 行出现错误:
    ORA-00036: 超过递归 SQL 级别的最大值 50
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 4
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA-04088: 触发器 'SYSTEM.TRIG_INPUT_TB_SENDSH' 执行过程中出错
    ORA-06512: 在 "SYSTEM.TRIG_INPUT_TB_SENDSH", line 24
    ORA