Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Schnelle Aktualisierung der materialisierten Ansicht mit HAVING-Klausel?

Ja, die Dokumentation scheint nicht korrekt zu sein.

Als Problemumgehung können Sie versuchen, verschachtelte materialisierte Ansichten zu implementieren.

CREATE MATERIALIZED VIEW mv1 
REFRESH FAST ON COMMIT 
AS
SELECT col1,
       COUNT(col1) count_col1
FROM test_table
GROUP BY col1

ALTER MATERIALIZED VIEW mv1 ADD CONSTRAINT pk_mv1 PRIMARY KEY (col1)

CREATE MATERIALIZED VIEW LOG ON mv1 WITH PRIMARY KEY;

CREATE MATERIALIZED VIEW MV2 
REFRESH FAST ON COMMIT AS
SELECT col1,
       count_col1
FROM   mv1
WHERE  count_col1 > 1