取得块中行号的方法

1727阅读 0评论2012-08-29 TOMSYAN
分类:Oracle

我们一般情况下通过DBMS_ROWID.ROWID_ROW_NUMBER来取得行号:
 

点击(此处)折叠或打开

  1. SQL> select dbms_rowid.rowid_row_number(rowid) row#,id,name from t;
  2.       ROW# ID NAME
  3. ---------- ---------- --------------------

  4.          0 0 A
  5.          1 1 B
  6.          2 2 C
  7.          3 3 D
  8.          4 4 E
  9.          5 5 F
  10.          6 6 G
  11.          7 7 H
  12.          8 8 I
  13.          9 9 G
  14. 10 rows selected.
其实还有个更简便的函数SYS_OP_RPB来取得块中的行号。
 

点击(此处)折叠或打开

  1. SQL> select dbms_rowid.rowid_row_number(rowid) row#,sys_op_rpb(rowid) from t;

  2.       ROW# SYS_OP_RPB(ROWID)
  3. ---------- -----------------

  4.          0 0
  5.          1 1
  6.          2 2
  7.          3 3
  8.          4 4
  9.          5 5
  10.          6 6
  11.          7 7
  12.          8 8
  13.          9 9

  14. 10 rows selected.

  15. SQL>

仅供参考。
上一篇:利用透明网关复制INFORMIX表到ORACLE导致列名为小写
下一篇:利用CTAS方式通过透明网关创建非ORACLE数据库的表结构导致列长度增大3倍