My Oracle Support Banner

Rows inserted using INSERT INTO are lost IN SERIALIZABLE mode (Doc ID 1455175.1)

Last updated on FEBRUARY 03, 2019

Applies to:

Oracle Database - Enterprise Edition - Version 8.1.7.3 to 9.0.1.3 [Release 8.1.7 to 9.0.1]
Information in this document applies to any platform.

Symptoms


Rows added using INSERT INTO are lost in SERIALIZABLE isolation level .
The problem happens only when using the SERIALIZABLE isolation level; it does not happen when using READ COMMIT isolation level.

- The record is updated just after inserted.

- Commit is not executed between insert and update.

- Primary key is set to the table that does insert/update, and updated record is searched by the primary key condition.

 

The following behavior is seen:

* Inside a transaction, one session executes the following statement:

  INSERT INTO "PROBLEMREPORT" ("ID", "AREA", "DELETED_BY_USER", "TEMPORARY") VALUES (:1, :2, :3, :4)

  Here, ":1" is bound to the integer value 587967.

* Later, still inside the same transaction, the same session executes the following statement:

  SELECT "ID", "AREA", "DELETED_BY_USER" FROM "PROBLEMREPORT" WHERE "ID" IN (587967) FOR UPDATE

Zero rows are returned by this statement, even though a row with ID 587967 was added previously.
There was no DELETE statement executed on the "PROBLEMREPORT" table by this or any other session.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.