少了个 end;3,
SQL> CREATE TRIGGER Test_Increase BEFORE
     insert ON  Test_Increase FOR EACH ROW
     begin
     select TestIncrease_Sequence.nextval into:New.userid from dual;
     end;
     end;

解决方案 »

  1.   

    1楼说的试过了,无效,不知道为什么,我用的system用户。
      

  2.   

    在SQLPLUS里:
       SQL写完要加;     PL/SQL写完要加/
    然后回车否则就出现2,告诉你你还少写了东西,在第"2"行输入
      

  3.   

    在命令窗口创建触发器结束的时候,要加/,再回车即可运行,你可以在SQL窗口编写,不会出现这个问题,
    点击上面的执行按钮或F8键按即可创建了。
      

  4.   

    SQL> create table Test_Increase(
      2             userid number(10) primary key,  /*主键,自动增加*/
      3             username varchar2(20)
      4             );表已创建。SQL> CREATE SEQUENCE TestIncrease_Sequence
      2   INCREMENT BY 1   -- 每次加几个
      3       START WITH 1     -- 从1开始计数
      4       NOMAXVALUE       -- 不设置最大值
      5       NOCYCLE          -- 一直累加,不循环
      6       CACHE 10;序列已创建。SQL> CREATE TRIGGER Test_Increase BEFORE
      2       insert ON  Test_Increase FOR EACH ROW
      3       begin
      4       select TestIncrease_Sequence.nextval into:New.userid from dual;
      5       end;
      6  /触发器已创建
    SQL> insert into test_increase(username) select 'name' from dual;已创建 1 行。SQL> commit;提交完成。SQL> select * from test_increase;    USERID USERNAME
    ---------- --------------------
             1 name