Complete isolation of concurrently running transactions could mean that one transaction cannot perform an insert into a table being queried by another transaction.
In short, real-world considerations usually require a compromise between perfect transaction isolation and performance.
The when the row is locked by the update statement, my select statement doesn't return the row at all, even though the row has existed for some time already and only 1 column is being updated.
It does happen to be one of the columns in the where clause ....
I have set this up currently using two different regions on the same page but I am getting errors both with the initial fetching of the rows (Which ever row is fetched 2nd seems to work but then the page items in the form that was fetched 1st are empty?
) and with submitting (It give some error about information in the DB having been altered since the update request was sent). It is a limitation of the built-in Apex forms that you can only have one automated row fetch process per page, unfortunately.
In this particular case, the table only has one row and since the select statement isn't getting that row back we create a new row when we shouldn't.
The ANSI/ISO SQL standard (SQL92) defines four levels of transaction isolation with differing degrees of impact on transaction processing throughput.
The issue is that right now they alter the information in APEX_MAIN on a page then they alter APEX_DATES on another.
I would really like to be able to have these forms on the same page and submit updates to their respective tables & rows with a single submit button.
However, in a multiuser database, the statements within multiple simultaneous transactions can update the same data.
Transactions executing at the same time need to produce meaningful and consistent results.
The processes read packets of data from a stream, add them to the database and process that data to build models.