表 tb 的 rowid 值 赋值给 表 tb 新增的一个字段。
sql语句能否实现?

解决方案 »

  1.   

    SQL> create table t_rowid
      2  (id number(10),
      3   row_id rowid);
     
    Table created
     
    SQL> insert into t_rowid (id) values(1);
     
    1 row inserted
     
    SQL> update t_rowid set row_id=rowid;
     
    1 row updated
     
    SQL> select rowid,id,row_id from t_rowid;
     
    ROWID                       ID ROW_ID
    ------------------ ----------- ------------------
    AAAM1mAAEAAAAQWAAA           1 AAAM1mAAEAAAAQWAAA
     
    SQL> 
      

  2.   


    SQL> update tb set row_id=(select rowid from tb)
      2  /已更新 1 行。SQL> edi
    已写入 file afiedt.buf  1* select id,row_id,rowid from tb
    SQL> /        ID ROW_ID                         ROWID
    ---------- ------------------------------ ------------------
             1 AAANjhAAEAAAAEYAAA             AAANjhAAEAAAAEYAAA
      

  3.   

     update tb set row_id=(select rowid from tb)
      

  4.   


       create table tb_rowid
       (id number(10),
         row_id rowid);
        )update tb_rowid t set t.tb_rowid=t.rowid;这个是正确的,rowid 是伪列
      

  5.   


    --
    update tb set tb.new_row_id=tb.rowid
     
      

  6.   

    update tb set row_id=(select rowid from tb)
    这种句子执行不报错么?