select 
dbms_rowid.rowid_row_number('AAAYeiAABL+7ABa'),--转换结果是90
dbms_rowid.rowid_row_number('AAAYeiAABL+uABa')--转换结果也是90
from dual在表中有两条数据的rowid如上,用rowid_row_number方法转换后都是90,有什么方法能把rowid转换为不重复的唯一样的数字吗?因为转换后要插入到得列只有两位,所以不能用rowid_block_number方法。
请赐教!

解决方案 »

  1.   

    如果你仅仅是要将记录添加序号,然后插入到另一个表的话,可以直接用row_number() over...等等来实现
      

  2.   


    select  
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAA'),--转换结果是90
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAB'),--转换结果也是90
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAD')
    from dual--result:0 1 3--什么的操作系统?
      

  3.   

    楼主你的SQL有错误,执行会出现异常,提示无效的ROWID。
      

  4.   

    我想用rowid转换成number之后当这一行数据得主键,所以不适合用rownum()
      

  5.   

    xp的。你可以用我提供的rowid试试
      

  6.   

    SQL code
    select  
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAA'),--转换结果是90
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAB'),--转换结果也是90
    dbms_rowid.rowid_row_number('AAAHVoAAKAAACCiAAD')
    from dual--result:0    1    3我得的也是0    1    3,我用的也是XP