title: Is a deadlock possible when updating and deleting different rows in a table?
body: <p>In Oracle 10+ versions, can update and delete on the same table cause deadlocks even if they are operating on different rows of same table concurrently?</p>
  
  <p>The table has primary key made-up of two columns, and do not have any FK associated/refereed with any other table. And there is no parent/child relation with other table</p>
  
  <p>What I believe is, it will not create a deadlock, but I'm facing a issue in my application.</p>
  
  <p><strong>adding the oracle trace :</strong></p>
  
  <p>The following deadlock is not an ORACLE error. It is a deadlock due to user error in the design of an application or from issuing incorrect ad-hoc SQL. The following information may aid in determining the deadlock:</p>
  
  <pre><code>Deadlock graph:
                         ---------Blocker(s)--------  ---------Waiter(s)---------
  Resource Name          process session holds waits  process session holds waits
  TX-0007003e-0081d6c3        45     790     X            104      20           X
  TX-00080043-0085e6be       104      20     X             45     790           X
  
  session 790: DID 0001-002D-000035F9     session 20: DID 0001-0068-000007F6
  session 20: DID 0001-0068-000007F6      session 790: DID 0001-002D-000035F9
  
  Rows waited on:
    Session 790: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEfIAAA
    (dictionary objn - 61640, file - 12, block - 18376, slot - 0)
    Session 20: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEfGAAA
    (dictionary objn - 61640, file - 12, block - 18374, slot - 0)
  
  ----- Information for the OTHER waiting sessions ----- Session 20:
    sid: 20 ser: 4225 audsid: 57496371 user: 72/RPT_TABLE
      flags: (0x45) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
      flags2: (0x40009) -/-/INC
    pid: 104 O/S info: user: oracle, term: UNKNOWN, ospid: 20798
      image: oracle@caidb10p-node1
    client details:
      O/S info: user: gtsgen, term: unknown, ospid: 1234
      machine: caiapp08p-node0.nam.nsroot.net program: JDBC Thin Client
      application name: JDBC Thin Client, hash value=2546894660
    current SQL:
    delete from RPT_TABLE.TEMP_TABLE_T1 where TEMP_T1_ID=:1
  
  ----- End of information for the OTHER waiting sessions -----
  
  Information for THIS session:
  
  ----- Current SQL Statement for this session (sql_id=bsaxpc2bdps9q) ----- UPDATE RPT_TABLE.TEMP_TABLE_T1 temp1 SET temp1.CLIENT_ID = (SELECT MIN(INVMAP.CLIENT_ID) FROM LI_REF.REF_CLIENT_MAP INVMAP WHERE INVMAP.F_CODE = :B2 AND INVMAP.AID = temp1.ID AND temp1.R_ID=:B1 )
  ----- PL/SQL Stack -----
  ----- PL/SQL Call Stack -----
    object      line  object
    handle    number  name
  45887d750        24  procedure RPT_TABLE.T1_UPDATE_StoredProc  
  
  6399ba188         1  anonymous block
  </code></pre>