![]() |
|
接下来,使用temp_jp_idx索引来访问表temp_jp的数据。
| select index_name, status from dba_indexes where table_name='TEMP_JP'; INDEX_NAME STATUS ------------------------------ -------- TEMP_JP_IDX VALID |
temp_jp_idx索引是有效索引,在检索表temp_jp的数据时,Oracle会使用该索引。下面找出表temp_jp数据的当前RowID。
| select rowid,a.* from temp_jp a; ROWID COL1 COL2 ------------------ ---------- -------------------- AAA16tAAEAAAADoAAA 1 RAMA AAA16tAAEAAAADoAAB 3 SITA AAA16tAAEAAAADoAAC 2 LAKSHMAN |
在移动表数据之前,我们先来保存从temp_jp表得到的当前RowID,以便稍后进行对照参考。
create table temp_rowids_jp as select col1,rowid as before_move_rowid from temp_jp;
从RowID找出相应的对象id、文件id和行号:
| select dbms_rowid.rowid_object(rowid) "object", dbms_rowid.rowid_relative_fno(rowid) "file", dbms_rowid.rowid_block_number(rowid) "block", dbms_rowid.rowid_row_number(rowid) "row" from temp_jp / object file block row ---------- ---------- ---------- ---------- 220845 4 232 0 220845 4 232 1 220845 4 232 2 |
接着,从dba_object中找到ID为220845的对象所有者、对象名和对象类型。
| select object_id,owner, object_name, object_type,created from dba_objects where object_id = 220845; OBJECT_ID OWNER OBJECT_NAME OBJECT_TYPE CREATED --------- ------ --------------- ------------------- --------- 220845 SCOTT TEMP_JP TABLE 30-MAR-08 select object_id,owner,object_name,object_type,created from dba_objects where created > trunc(sysdate) -1/24; OBJECT_ID OWNER OBJECT_NAME OBJECT_TYPE CREATED --------- ------ --------------- ------------------- --------- 220846 SCOTT TEMP_JP_IDX INDEX 30-MAR-08 220845 SCOTT TEMP_JP TABLE 30-MAR-08 220847 SCOTT TEMP_ROWIDS_JP TABLE 30-MAR-08 select object_id,owner,object_name,object_type,created from dba_objects where object_id in (select max(object_id) from dba_objects); OBJECT_ID OWNER OBJECT_NAME OBJECT_TYPE CREATED --------- ------ --------------- ------------------- --------- 220847 SCOTT TEMP_ROWIDS_JP TABLE 30-MAR-08 |
[1] [2]