CREATE MATERIALIZED VIEW nom_vue
[PARTITION BY ...]
BUILD IMMEDIATE -- quand la construire (alt. : DEFERED)
REFRESH FORCE -- mode de rafraîchissement (alt. : COMPLETE, FAST)
ON DEMAND -- quand la rafraîchir (alt. : COMMIT)
ENABLE QUERY REWRITE -- utilisable pour l'optimisation automatique de requêtes (alt. : DISABLE)
AS
SELECT ...
EXECUTE dbms_mview.refresh('nom_vue');
Oracle ne pourra pas toujours inférer automatiquement que des vues matérialisées sont utilisables à la place des tables originales. Il est donc nécessaire dans ce cas de réécrire soi-même les requêtes concernées. En pratique c'est souvent le cas si les vues sont complexes.
La déclaration d'une vue matérialisée sous Oracle 9i permet également de planifier automatiquement les modalités de rafraîchissement de la vue, plutôt que de devoir gérer un rafraîchissement uniquement manuel.
Une vue matérialisée peut être indexée ou partitionnée comme toute table Oracle.