本帖最后由 rankx 于 2011-12-02 10:12:42 编辑

解决方案 »

  1.   

    select 'e'||to_char(a+b) into:new.empID from dual错了,其实时限你想要的功能没必要弄那么复杂,只要把序列的起始值改为1000就行了:
    create sequence sep_employee_empid
    increment by 1
    start with 1000
    maxvalue 1999
    minvalue 1000
    nocache
    cycle
      

  2.   


    当到达1999  会变成e2000吗?
    我还连接了字符
    我对cylce的理解是
    自增到1999
    又跳到1000
    之后还能插入库中吗?
    求解释
      

  3.   

    cycle:表示达到上限后,会从start with指定的值开始,再次循环。
      

  4.   

    into:new.empID   中间加个空格
      

  5.   

    嗯~谢谢楼上!!可我还是想知道我的trigger怎么了
      

  6.   

    into:new.empID 中间加个空格into :new.empID
      

  7.   

    -创建触发器
    create trigger trg_employee  
    before insert
    on tb_employee
    for each row
    declare
    a number:=1000;
    b number:=sep_employee_empid.nextval;
    begin
    select 'e'||to_char(a+b) into b from dual;
      :new.empID := b ; 
    end;