DELETE statement which does affect 0 rows
Hi,
when I run a DELETE statement which does not affect any row (0 rows have been deleted) and do no commit afterwards, I can see a row exclusive lock on the concerned table when runing the statement
SELECT OWNER || '.' || OBJECT_NAME "Object"
,OS_USER_NAME "Terminal"
,ORACLE_USERNAME "Locker"
,PROGRAM "Program"
,NVL(LOCKWAIT, 'ACTIVE') "Wait"
,DECODE(LOCKED_MODE, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE', 4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') "Lockmode"
,OBJECT_TYPE "Object Type"
,SESSION_ID "Session ID"
,SERIAL# "Serial"
,C.SID "SID"
FROM SYS.V_$LOCKED_OBJECT A
,SYS.ALL_OBJECTS B
,SYS.V_$SESSION C
WHERE A.OBJECT_ID = B.OBJECT_ID
when I run a DELETE statement which does not affect any row (0 rows have been deleted) and do no commit afterwards, I can see a row exclusive lock on the concerned table when runing the statement
SELECT OWNER || '.' || OBJECT_NAME "Object"
,OS_USER_NAME "Terminal"
,ORACLE_USERNAME "Locker"
,PROGRAM "Program"
,NVL(LOCKWAIT, 'ACTIVE') "Wait"
,DECODE(LOCKED_MODE, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE', 4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') "Lockmode"
,OBJECT_TYPE "Object Type"
,SESSION_ID "Session ID"
,SERIAL# "Serial"
,C.SID "SID"
FROM SYS.V_$LOCKED_OBJECT A
,SYS.ALL_OBJECTS B
,SYS.V_$SESSION C
WHERE A.OBJECT_ID = B.OBJECT_ID
0