USERID.NEXTVAL INTO :NEW.USERID FROM DUAL;
->
select USERID.NEXTVAL INTO :NEW.USERID FROM DUAL;

解决方案 »

  1.   

    这是SQL语句,必须写完
     SELECT   USERID.NEXTVAL INTO :NEW.USERID FROM DUAL;
      

  2.   

    我把 USERID.NEXTVAL INTO :NEW.USERID FROM DUAL; 改为  select USERID.NEXTVAL INTO :NEW.USERID FROM DUAL;在Sql Plus 里执行还是报错,错误信息与以前一样:
    表已丢弃。
    表已创建。
    警告: 创建的触发器带有编译错误。
      

  3.   

    select USERID.nextval into next_id from dual;
    :new.USERID:= next_id;
      

  4.   

    按照大家的说法我又改了一下,SQL语句如下:Drop Table X_TEST;create Table X_TEST(
    USERID number(2),
    BegDate date not null,
    EndDate date not null
    );CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        NOCACHE NOORDERCREATE OR REPLACE TRIGGER USERADD
    BEFORE INSERT ON X_TEST
    FOR EACH ROW         
    BEGIN
        select USERID.nextval into next_id from dual;
        :new.USERID:= next_id;END;在Sql Plus 里执行还是报错,信息如下:
    表已丢弃。
    表已创建。
    警告: 创建的触发器带有编译错误。
      

  5.   

    CREATE OR REPLACE TRIGGER USERADD
    BEFORE INSERT ON X_TEST
    FOR EACH ROW         
    declare
    next_id number;
    BEGIN
        select USERID.nextval into next_id from dual;
        :new.USERID:= next_id;END;
    /
      

  6.   

    不行啊!按照bzszp(SongZip) 说的改了还是有错:Drop Table X_TEST;create Table X_TEST(
    USERID number(2),
    BegDate date not null,
    EndDate date not null
    );CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        NOCACHE NOORDERCREATE OR REPLACE TRIGGER USERADD
    BEFORE INSERT ON X_TEST
    FOR EACH ROW  
    declare
    next_id number;       
    BEGIN
        select USERID.nextval into next_id from dual;
        :new.USERID:= next_id;END;在Sql Plus 里执行还是报错,信息如下:
    表已丢弃。
    表已创建。
    警告: 创建的触发器带有编译错误。
      

  7.   

    楼主看来是刚接触oracle,或者是太粗心了
    CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        NOCACHE NOORDER ; 后面要有;号来结束SQL> create Table X_TEST(
      2  USERID number(2),
      3  BegDate date not null,
      4  EndDate date not null
      5  );表已创建。SQL> CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
      2      MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
      3      NOCACHE NOORDER;序列已创建。SQL> CREATE OR REPLACE TRIGGER USERADD
      2  BEFORE INSERT ON X_TEST
      3  FOR EACH ROW  
      4  declare
      5  next_id number;       
      6  BEGIN
      7      select USERID.nextval into next_id from dual;
      8      :new.USERID:= next_id;
      9  
     10  END;
     11  /触发器已创建SQL>
      

  8.   

    TO bzszp(SongZip) 大侠,我确实是刚接触oracle,
    连这段代码我都是在网上搜到的,改了一下就出现这问题了。
    什么触发器、PL/SQL之类的完全不懂,以后还请大侠多指点才是。
    谢谢各位的热情解答,抱歉我的分给少了,不能给大家多加点分 :)
    再次谢谢各位! 谢谢bzszp(SongZip) 大侠