-- session 1
some_user@db: select sid, serial# from gv$session where username = 'SOME_USER';
SID SERIAL#
---------- ----------
96 5259
some_user@db: select * from t;
ID NAME
---------- ------------------------------
1 asdf
2 qwer
some_user@db: update t set name = 'uiop' where id = 2;
1 row updated.
-- session 2
some_user@db: select sid, serial#, logon_time from gv$session where username = 'SOME_USER' order by logon_time desc;
SID SERIAL# LOGON_TIME
---------- ---------- -------------------
302 1337 22.03.2011 16:30:57
96 5259 22.03.2011 16:29:28
some_user@db: update t set name = 'bnm,' where id = 2;
waiting...
-- session 1
column locked_object format a10
column command format a20
SELECT s.sid AS locked_session
,s.blocking_session AS blocking_session
,o.object_name AS locked_object
,dbms_rowid.rowid_create(1,
row_wait_obj#,
row_wait_file#,
row_wait_block#,
row_wait_row#)
AS locked_obj_rowid
,CASE command
WHEN 2 THEN 'INSERT'
WHEN 3 THEN 'SELECT'
WHEN 6 THEN 'UPDATE'
WHEN 7 THEN 'DELETE'
WHEN 26 THEN 'LOCK'
ELSE to_char(command) || ' - см. v$session desc, таблица 7.5 , 10g Database Reference'
END AS command
FROM gv$session s
JOIN dba_objects o ON o.object_id = s.row_wait_obj#
WHERE s.sid = 302;
LOCKED_SESSION BLOCKING_SESSION LOCKED_OBJ LOCKED_OBJ_ROWID COMMAND
-------------- ---------------- ---------- ------------------ --------------------
302 96 T AAA7qvAAJAALqnvAAB UPDATE
some_user@db: select rowid, t.* from t;
ROWID ID NAME
------------------ ---------- ------------------------------
AAA8BzAAJAALqnvAAA 1 asdf
AAA8BzAAJAALqnvAAB 2 uiop
AAA7qvAAJAALqnvAAB != AAA8BzAAJAALqnvAAB
Сгенерированый вами ROWID ссылается на OBJECT_ID, в то время как псевдоколонка ROWID ссылается на DATA_OBJECT_ID
-- сгенерированный
some_user@db: select dbms_rowid.rowid_object('AAA7qvAAJAALqnvAAB') from dual;
DBMS_ROWID.ROWID_OBJECT('AAA7QVAAJAALQNVAAB')
---------------------------------------------
244399
-- псевдоколонка ROWID
some_user@db: select dbms_rowid.rowid_object('AAA8BzAAJAALqnvAAB') from dual;
DBMS_ROWID.ROWID_OBJECT('AAA8BZAAJAALQNVAAB')
---------------------------------------------
245875
some_user@db: select object_id, data_object_id from user_objects where object_name = 'T';
OBJECT_ID DATA_OBJECT_ID
---------- --------------
244399 245875
|