Hi,

I want to find the row for which a session is waiting,here is the query to find the rowid,

SQL> select do.object_name,
2 row_wait_obj#, row_wait_file#, row_wait_block#, row_wait_row#,
3 dbms_rowid.rowid_create (1,ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#)
4 from v$session s, dba_objects do
5 where sid=10
6 and s.ROW_WAIT_OBJ# = do.OBJECT_ID ;

OBJECT_NAME ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# DBMS_ROWID.ROWID_C
-------------------- ------------- -------------- --------------- ------------- ------------------
EMP 34768 1 53714 0 AAAIfQAABAAANHSAAA

When i queried for that ROWID,it gave the following error,

SQL> select * from emp where rowid='AAAIfQAABAAANHSAAA';
select * from emp where rowid='AAAIfQAABAAANHSAAA'
*
ERROR at line 1:
ORA-01410: invalid ROWID

I checked the rowid by using the below query and found that ROWID returned by procedure DBMS_ROWID differs by only one character thats why it's giving the error.

ROWID given by DBMS_ROWID = AAAIfQAABAAANHSAAA
Actual ROWID = AAAIfYAABAAANHSAAA

My oracle version is 9.2.0.8.

SQL> select rowid,id from scott.emp;

ROWID ID
------------------ ----------
AAAIfYAABAAANHSAAA 1
AAAIfYAABAAANHSAAB 2

How to solve this problem?What i've to do to get the actual rowid?

Thanks....