--第一步建表
create table EMPLOYYES
(
 EID NUMBER(5),
 ENAME VARCHAR(20),
 ESEX NUMBER(1)
)--第二部建序列
create sequence  sequence_EMPLOYYES 
increment by 1 
start with 1 
nomaxvalue 
nocycle 
cache 10;--建触发器
create OR replace trigger trigger_EMPLOYYES before 
insert on EMPLOYYES for each row
begin
select sequence_EMPLOYYES.nextval into:new.EID from dual;
end;我是个oracle新手,想给表加个自增的主键,以上代码在执行触发器的时候总是出现 索引中丢失 IN 或 OUT 参数:: 1,请大家帮忙,感激不尽。

解决方案 »

  1.   


    into :new.EID  隔开点
    SQL> edi
    已写入 file afiedt.buf  1   create OR replace trigger trigger_EMPLOYYES before
      2   insert on EMPLOYYES for each row
      3   begin
      4   select sequence_EMPLOYYES.nextval into :new.EID from dual;
      5*  end;
      6  /触发器已创建SQL> insert into EMPLOYYES(ename,esex) values('wkc168',1);已创建 1 行。SQL> select * from EMPLOYYES;       EID ENAME                      ESEX
    ---------- -------------------- ----------
             1 wkc                           1
             2 wkc168                        1
      

  2.   


    二楼提供的方法依然出现"索引中丢失 IN 或 OUT 参数:: 1"同样的错误
      

  3.   

    用了楼主的代码,很正常啊,你是在insert data时出错?
      

  4.   

    楼主把触发器删掉,然后这样insert试试看,一定要先drop triggerinsert into employyes values (sequence_employyes.nextval,'tracy',5);还会出错吗?