Конвертация синонимов из Oracle в PostgreSQL
Поскольку PostgreSQL не поддерживает синонимы, при их переносе из Oracle в PostgreSQL можно использовать несколько подходов:
- Заменить синонимы в коде на объекты, на которые они ссылаются напрямую.
- Преобразовать синонимы в представления (этот метод подходит только для синонимов таблиц и представлений).
Для преобразования синонимов в нашем инструменте доступны следующие варианты:
-
По умолчанию наш инструмент не конвертирует синонимы. Это означает, что при конвертации все синонимы будут потеряны, а использование синонимов в коде будет заменено использованием объектов, на которые непосредственно ссылаются эти синонимы. Таким образом, при создании и вызове других объектов не возникнет проблем, так как синонимы больше не будут использоваться в коде. Этот стандартный подход упрощает процесс конвертации, исключая синонимы из базы данных.
-
Иногда пользователи хотят сохранить синонимы в базе данных, особенно если их приложение активно использует эти синонимы и клиент не хочет вносить большие изменения в код при переносе базы данных. В нашем инструменте есть решение для таких случаев: синонимы можно конвертировать в представления. Это решение подходит только для синонимов, которые ссылаются на таблицы и представления.
Чтобы преобразовать такие синонимы, необходимо воспользоваться следующим параметром (Как установить параметры в Конвертум Мастере):
[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