Pourquoi un ORA-12054 erreur se produit lors de la création de cette simple vue matérialisée exemple?

ALTER TABLE RECORDINGS ADD PRIMARY KEY (ID);

CREATE MATERIALIZED VIEW LOG ON RECORDINGS TABLESPACE USERS NOLOGGING;

DROP MATERIALIZED VIEW REC_SEARCH_TEST;
CREATE MATERIALIZED VIEW REC_SEARCH_TEST
REFRESH COMPLETE ON COMMIT
AS (
    SELECT DISTINCT ID, TITLE FROM RECORDINGS
);


ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view

Ne peut pas comprendre ce qui est mal, je sais que si je sors la clause DISTINCT, il fonctionne, mais pourquoi ne puis-je pas utiliser "DISTINCTS" si je précise "ACTUALISER COMPLÈTE SUR COMMIT' qui est nécessaire.

Si j'utilise DISTINCTES et de les ACTUALISER sur demande, il n'y a pas de problème, mais ce ne sont pas les exigences.

  • Vous avez un index unique. Il n'y a pas besoin de l'distinctes pourquoi s'embêter avec ça?
  • Peut-être l'exemple n'est pas le meilleur, parce que je veux élargir la vue d'une plus compliqué requête qui va exiger un mot clé distinct, pour l'instant, je suis juste essayer de le faire fonctionner sur un niveau de base.
  • Le DISTINCT n'a aucun sens du tout. Le ID colonne dans la sélection sera la cause de toutes les lignes distinctes toujours.
InformationsquelleAutor Moz | 2012-01-16