这样改改:
create or replace trigger system.bef_ins_agzbw_traino
before insert on system.agzbw_traino
referencing old as old new as new for each row
begin
  dbms_output.put_line(TARINO_ID_INC.nextval);
  select TARINO_ID_INC.nextval into :new.TARINO_ID from dual;
  dbms_output.put_line(TARINO_ID_INC.nextval);
end;在sqlplus中先执行:
set serverout on
然后触发触发器,看看打印出什么信息!

解决方案 »

  1.   

    无任何信息和以前一样,不知道什么原因阿,我用的是system登录,不知道有没有关系?
      

  2.   

    SQL> create sequence test_id
      2  minvalue 1
      3  maxvalue 99999999
      4  start with 1
      5  increment  by 1
      6  /序列已创建。SQL> create or replace trigger test_trigger before insert on tt_jia referencing old as old new as new for each row
      2  begin
      3  select test_id.nextval into :new.ff from dual
      4  end
      5  /警告: 创建的触发器带有编译错误。
      

  3.   

    通常在Oracle中都是通过序列来实现自动增长字段的。
      

  4.   

    你是在sqlplus下建trigger的?试试看:
    create or replace trigger system.bef_ins_agzbw_traino
    before insert on system.agzbw_traino
    referencing old as old new as new for each row
    begin
      select TARINO_ID_INC.nextval into :new.TARINO_ID from dual;
    end;
    /应该不会有问题的啊
      

  5.   

    搞定了,结果如下:
    create or replace trigger bef_ins_agzbw_traino
    before insert on system.agzbw_traino
    referencing old as old new as new for each row
    begin
    select system.TARINO_ID_INC.nextval into :new."TARINO_ID" from dual;end;////////////////////////////////////////////////////////////////////
    create or replace trigger system.bef_ins_agzbw_traino//有个system用户
    before insert on system.agzbw_traino
    referencing old as old new as new for each row
    begin
      select TARINO_ID_INC.nextval into :new.TARINO_ID from dual;//new."TARINO_ID"有个双引号
    end;
    有能解析为什么这样就正确的朋友吗?我用www.baidu.com找到有人这样写按着写的,但有说明是为什么要这么做,稍候给分,谢谢所有帮助我的朋友,大家新年快乐!!!