create sequence xxxidselect xxxid.nextval from dual;

解决方案 »

  1.   

    rowid不是数据类型,而是表的固定一列
      

  2.   

    楼上的可以说详细一点吗?
    什么固定的一列呢?偶在powerdesigner里面建表的时候看到有这个数据类型
    以前好像听说过是自动增长的,但不确定
      

  3.   

    oracle给每个表加一隐藏列,用以唯一标识不同记录,该列名为 rowid
    用 select rowid from 表名 看一下,发现是自动增长的
      

  4.   

    每一行数据其实都有一个ROWID与之相关联。ROWID的信息可以帮助数据库确定他所表示的行的数据到底是在磁盘上的什么位置。
    还有比如UROWID(Unique Row ID),这种ID可以在分布式的环境中唯一标识出他所表示的行的位置。因此,每一个行的ROWID,用户是不能够修改他的。但是我们往往可以通过ROWID,最快速的选出他所标识的行。
      

  5.   

    你试一下就知道了
    select rowid,* from 表名
      

  6.   

    rowid在oracle中是一个虚的列,成为伪列,是系统特殊的里,系统自己建立的,
    用于对数据库中的每条记录进行定位.为每个表中的每一条记录赋予一个唯一的标识号rowid.
    用desc 表名 查看表结构的时候并不显示该字段.
    rowid在进行update ,delete操作中速度最快.rowid数据类型的操作:
        将rowid类型转换成char类型:
        select rowidtochar(rowid) from dual
        将char类型转换成rowid类型:
        select chartorowid('AAAADDAAEAAAAGrAAA') from dual;
      

  7.   

    rowid是表的伪列,用于记录定位的你是想要一个自增的ID列吧,用序列create sequence kkselect kk.nextval from dual;
      

  8.   

    序列建好了就可以用了.,
    create sequence seq_name
    increment by 1
    start with 1
    maxvalue 999999999
    nocycle
    cache 10使用:
        insert into table(id,name) values(seq_name.nextval,'juaner2000');如果把这句话加在触发器中就可以达到系统插入记录时自动加一的目的/
      

  9.   

    创建触发器:create or replace trigger tri_bi_tablea
      before insert on table
      for each rowdeclare
      v_id number;
      begin
      select seq_a.nextval into v_id from dual;
      :new.a_id:=v_id;end tri_bi_tablea;
      

  10.   

    DECLARE
    CURSOR c1 IS SELECT ename, job, rowid FROM emp;
    my_ename emp.ename%TYPE;
    my_job emp.job%TYPE;
    my_rowid UROWID;
    BEGIN
    OPEN c1;
    LOOP
    FETCH c1 INTO my_ename, my_job, my_rowid;
    EXIT WHEN c1%NOTFOUND;
    UPDATE emp SET sal = sal * 1.05 WHERE rowid = my_rowid;
    -- this mimics WHERE CURRENT OF c1
    COMMIT;
    END LOOP;
    CLOSE c1;
    END;
      

  11.   

    select rowid,* from 表名 出错,用select rowid,表名.* from 表名 可以
      

  12.   

    oracle 里有rowid的伪列,可以用序列实现