Конвертация синонимов из Oracle в PostgreSQL

Поскольку PostgreSQL не поддерживает синонимы, при их переносе из Oracle в PostgreSQL можно использовать несколько подходов:

  • Заменить синонимы в коде на объекты, на которые они ссылаются напрямую.
  • Преобразовать синонимы в представления (этот метод подходит только для синонимов таблиц и представлений).

Для преобразования синонимов в нашем инструменте доступны следующие варианты:

  1. По умолчанию наш инструмент не конвертирует синонимы. Это означает, что при конвертации все синонимы будут потеряны, а использование синонимов в коде будет заменено использованием объектов, на которые непосредственно ссылаются эти синонимы. Таким образом, при создании и вызове других объектов не возникнет проблем, так как синонимы больше не будут использоваться в коде. Этот стандартный подход упрощает процесс конвертации, исключая синонимы из базы данных.

  2. Иногда пользователи хотят сохранить синонимы в базе данных, особенно если их приложение активно использует эти синонимы и клиент не хочет вносить большие изменения в код при переносе базы данных. В нашем инструменте есть решение для таких случаев: синонимы можно конвертировать в представления. Это решение подходит только для синонимов, которые ссылаются на таблицы и представления.

Чтобы преобразовать такие синонимы, необходимо воспользоваться следующим параметром (Как установить параметры в Конвертум Мастере):

[DDL]
SYNONYM_TO_VIEW=Yes

При использовании данного параметра вместо синонимов для таблиц и представлений PostgreSQL будет создавать представления для соответствующих объектов:

ORACLE PostgreSQL
CREATE SYNONYM SYN_FOR_TAB FOR TAB_FOR_SYN CREATE VIEW SYN_FOR_TAB AS SELECT * FROM TAB_FOR_SYN

Для других типов объектов (функций, процедур и т. д.) синонимы будут пропущены, а код поменяет использование синонимов на сами объекты.


Если у вас есть другие вопросы, пожалуйста, свяжитесь с нами: support@convertum.ru