sql server2000有一个字段的类型可以字段自动生成编号:在oracle不知道是那一个字段类型可以自动生成编号:
  例如:
     表:Table1
     字段:AA  --???选择那一个字段类型可以“自动生成编号”
           BB  varchar2(20)     Insert Into Table1(BB)Values('a');
     Insert Into Table1(B)Values('b');      
     SQL> Select * From able1;
                                     AA BB
--------------------------------------- ----------
                                     1  a
                                     2  b-------------------------------------能否可以自动生成“1、2、3、4……”

解决方案 »

  1.   

    我将字段“AA”数据类型改为“rowid”
    还是不能自动生成编号“1、2、3、4……”在oracle11g没有见有“rownum”数据类型请问还要设置那里?
      

  2.   

    用sequence应该可以吧。建一个sequence,然后在Table1上加一个trigger。google一下 "oracle sequence",网上这种回答很多的。
      

  3.   

    方法有两种:
      1.使用rownum
      2.给AA那一列创建一个序列sequence
      

  4.   

    只是为了查询时赋个序号的话可以用rownum这个伪列(不是数据类型)
    select rownum,table_name from user_tables;要像sqlserver里的自动增长列那样为记录赋序号
    用序列sequence
    create sequence SEQNAME ....
    用SEQNAME.NEXTVAL填充序号字段
      

  5.   

    rownum  可以啊 。。序列可以啊。。
      

  6.   

    我主要是用来插入数据自动生成AA“1 2 3 4 .....”
    ORACLE11G 没有见有“rownum”
      

  7.   

    用序列,不要用rownum
    可以手动调用序列名.nextval
    如果一定要自动,就写个触发器
      

  8.   

    在创建表之后,创建序列:
      create sequence 序列名
         increment by 1 start with 1 
      minvalue 1.0E28 minvalue 1 
      nocycle
     catch 20 NOORDER noorder(创建序列可以界面操作的,只要你安装了oracle就行,可以显示SQL语句的)之后再创触发器:
    create trigger 名称
    before insert on 表名
    for each row
    begin
    select 序列名.nextval into :new.id from dual;
    end;(这个也是可以显示SQL语句的)这样就行了,我也是才学没几天的,呵呵
      

  9.   

    晕,出错了,上面的NOORDER是不需要的旁边有小写的
      

  10.   

    非常感谢大家的帮助,使用create sequence就可以自动生成编号了