Как создать MVIEW, содержащий dblink в postgresql

Я извлек операторы MVIEW из базы данных оракула и выполнил эти операторы в базе данных postgresql.

Я получаю ошибку ниже:

ОШИБКА: синтаксическая ошибка в @ или рядом с ним. Синтаксис оператора MVIEW: CREATE Материализованное представление XYS as select ***** from target@dblink.

Я не уверен, что postgresql mview распознает или анализирует символ «@» или нет. Пожалуйста помоги.

Пожалуйста помоги.


person Sagar Maram    schedule 21.09.2020    source источник


Ответы (1)


SQL стандартизирован, но каждая база данных говорит на своем диалекте, поэтому нельзя ожидать, что нестандартные операторы SQL будут перенесены из Oracle в PostgreSQL.

Вместо ссылки на базу данных вы должны использовать внешнюю таблицу в PostgreSQL, поэтому в зависимости от того, где находится целевая таблица, вы должны установить postgres_fdw или oracle_fdw.

Кроме того, операторы CREATE MATERIALIZED VIEW различаются в PostgreSQL и Oracle. В PostgreSQL есть только то, что в Oracle называется REFRESH COMPLETE ON DEMAND, так что, скорее всего, вам придется немного изменить дизайн.

person Laurenz Albe    schedule 22.09.2020