identity这个数据类型是sybase和sqlserver的,在oracle中是没有的,只能程序自己处理。
或者可以创建一个sequence,在数据表上创建一个"插入前"的触发器来获得sequence值给表里的那个列。

解决方案 »

  1.   

    --创建序列
    create sequence NAME_SEQ
    minvalue 1
    maxvalue MAX
    start with 1
    increment by 1
    cache 20;
    插入数据时,有两种方式:
    显式:insert into tblname (ID,...) values(NAME_SEQ,nextval,...)
    自动:通过触发器实现
      

  2.   

    纠正楼上的:
    显式:显式:insert into tblname (ID,...) values(NAME_SEQ,nextval,...)
    改为
    显式:insert into tblname (ID,...) values(NAME_SEQ.nextval,...)
    是'.'而不是','
      

  3.   

    那一般的oracle建表时都要需要这样的步骤吗?oracle也太麻烦了,还有类似的比较简单的方法吗?
      

  4.   

    NAME_SEQ.nextval? NAME_SEQ是序列名,这个.nextval是什么意思?
      

  5.   

    .netval 将NAME_SEQ加1后的值