Oracle - я не могу использовать оператор PREBUILD Материализованного Представления с другими предложениями MV - PullRequest
1 голос
/ 09 июня 2011

Я пытаюсь построить Материализованное Представление на вершине готовой таблицы.Я могу использовать приведенный ниже синтаксис без модификаторов, и он отлично работает.

CREATE MATERIALIZED VIEW TESTRESULT
ON PREBUILT TABLE
SELECT ...
FROM ...
WHERE ...

Однако при добавлении дополнительных предложений в материализованное представление я получаю сообщение об ошибке «Отсутствует ключевое слово».Я не уверен, что мне не хватает, и я не могу найти какую-либо документацию в Интернете в сочетании со сборкой поверх готовой таблицы и с добавлением дополнительных предложений.

CREATE MATERIALIZED VIEW TESTRESULT
NOCACHE
LOGGING
NOCOMPRESS
NOPARALLEL
BUILD IMMEDIATE
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
ON PREBUILT TABLE
AS 
SELECT ...
FROM ...
WHERE ...

OracleПроверка: 10 г

1 Ответ

4 голосов
/ 09 июня 2011

Параметр ON PREBUILT TABLE несовместим с некоторыми вашими параметрами, как описано в документации CREATE MATERIALIZED VIEW :

  • CACHE, LOGGING, PARALLEL и COMPRESS являютсясвойства таблицы унаследованы от уже созданной таблицы и поэтому несовместимы с PREBUILT.
  • есть опция BUILD, чтобы указать, когда таблица должна быть заполнена.Однако таблица уже заполнена, поскольку вы использовали опцию PREBUILT, и поэтому эти две опции несовместимы.

Также убедитесь, что у вас есть аргументы в правильном порядке.

Следующие работы:

SQL> CREATE TABLE TEST(ID NUMBER PRIMARY KEY);

Table created

SQL> CREATE TABLE testresult(ID NUMBER);

Table created

SQL> CREATE MATERIALIZED VIEW TESTRESULT
  2  ON PREBUILT TABLE
  3  REFRESH FORCE ON DEMAND
  4  WITH PRIMARY KEY
  5  AS
  6  SELECT ID
  7  FROM TEST;

Materialized view created
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...