Глава 2. Функциональные возможности

Утилита ora2pgpro состоит из Perl-скрипта ora2pgpro и Perl-модуля Ora2PgPro.pm. Для использования утилиты достаточно указать в файле конфигурации ora2pgpro.conf DSN для подключения к БД Oracle и, при необходимости, имя схемы. После этого необходимо указать тип экспорта: TABLE с ограничениями, VIEW, MVIEW, TABLESPACE, SEQUENCE, INDEXES, TRIGGER, GRANT, FUNCTION, PROCEDURE, PACKAGE, PARTITION, TYPE, INSERT или COPY, FDW, QUERY, SYNONYM.

По умолчанию ora2pgpro экспортирует данные в файл, который можно загрузить в БД Postgres Pro, используя клиент psql. Кроме того, можно настроить импорт напрямую в БД Postgres Pro, указав DSN в файле конфигурации. Множество параметров конфигурации ora2pgpro.conf позволяют гибко управлять процессом экспорта. Доступны следующие функциональные возможности:

  • Полный экспорт схемы БД (таблицы, представления, последовательности, индексы) с ограничениями уникальности, первичным ключом, внешними ключами и ограничениями-проверками.
  • Экспорт прав пользователей и групп.
  • Экспорт секций по спискам и по диапазонам.
  • Экспорт нескольких таблиц (с указанием имён).
  • Экспорт схемы Oracle как схемы Postgres Pro.
  • Экспорт предопределённых функций, триггеров, процедур, пакетов и тел пакетов.
  • Экспорт всех данных или выбранных предложением WHERE.
  • Полная поддержка экспорта объектов BLOB Oracle как bytea Postgres Pro.
  • Экспорт представлений Oracle как таблиц Postgres Pro.
  • Экспорт определяемых пользователем типов Oracle.
  • Базовое автоматическое преобразование кода PL/SQL в код PL/pgSQL.
  • Работа на любой платформе.
  • Экспорт таблиц Oracle как таблиц, реализованных через обёртку сторонних данных.
  • Экспорт материализованных представлений.
  • Вывод отчёта о содержимом БД Oracle.
  • Оценка стоимости миграции БД Oracle.
  • Оценка сложности миграции БД Oracle.
  • Оценка стоимости миграции кода PL/SQL из файла.
  • Оценка стоимости миграции SQL-запросов Oracle, хранящихся в файле.
  • Экспорт Oracle Locator и пространственных данных в PostGIS.
  • Экспорт DBLINK в Oracle FDW.
  • Экспорт SYNONYM как представлений.
  • Экспорт DIRECTORY как внешних таблиц или каталога для расширения external_file.
  • Передача SQL-команд с использованием нескольких соединений с Postgres Pro.
  • Сравнение БД Oracle и Postgres Pro для целей тестирования.
  • Полная поддержка экспорта пакетов Oracle в пакеты Postgres Pro.
  • Экспорт VARRAY как массивов Postgres Pro.
  • Экспорт ассоциативных массивов как коллекций pg_variables.

Утилита ora2pgpro делает всё возможное, чтобы преобразовать БД Oracle в Postgres Pro автоматически, но некоторые действия необходимо выполнить вручную, например, проверить код PL/SQL, сгенерированный для функций, процедур, пакетов и триггеров, на соответствие синтаксису Postgres Pro. Некоторые рекомендации по портированию кода из PL/SQL в PL/pgSQL даны в разделах Портирование из Oracle PL/SQL и Инструменты миграции в Postgres Pro.