/* ejemplo que ilustra el problema de las lecturas no repetibles
   en transacciones, y su resolución en SGBD ORACLE
*/

CREATE VIEW coloresP AS (
  SELECT DISTINCT nombre, color FROM prendas WHERE color IS NOT NULL
);

-- asegurar que "SET TRANSACTION READ ONLY" es la primera operación de la transacción
COMMIT;
-- SET TRANSACTION READ ONLY;

SELECT count(*) FROM prendas;
SELECT count(*) FROM coloresP;

pause

SELECT count(*) FROM prendas;
SELECT count(*) FROM coloresP;

COMMIT;

SELECT count(*) FROM prendas;
SELECT count(*) FROM coloresP;

pause

SELECT count(*) FROM prendas;
SELECT count(*) FROM coloresP;

DROP VIEW coloresP;
