Comments 16
Я думаю стоит отметить, что эта тулза в состоянии также и конвертнуть PLSQL в PGPLSQL, но делает это не совсем хорошо. Но, все таки, может быть проще поправить уже конвертнутое решение, чем писать все самому.
0
Не совсем хорошо это мягко сказано. На самом деле без сильной боли можно мигрировать только в простых случаях, когда субд как записная книжка используется (кстати, а Оракл то вам зачем нужен был тогда?).
Кроме проблем конвертации кода (не, разобрать PLSQL, построить дерево, трансформировать и кодогенерировать я и сам могу). есть проблема совместимости пакетов, работы с датами, работы с лобами. Для трехзвенок приходится в отсутствии такого понятия как context в PostgreSQL весьма изощрятся. Временные таблицы в оракле временные данные, в постгресе — существуют во время сессии только.
Так что конвертнуть данные это только первый шаг по дороге миграции.
Кроме проблем конвертации кода (не, разобрать PLSQL, построить дерево, трансформировать и кодогенерировать я и сам могу). есть проблема совместимости пакетов, работы с датами, работы с лобами. Для трехзвенок приходится в отсутствии такого понятия как context в PostgreSQL весьма изощрятся. Временные таблицы в оракле временные данные, в постгресе — существуют во время сессии только.
Так что конвертнуть данные это только первый шаг по дороге миграции.
+2
На данный момент на соседнем проекте, где очень много развесистой бизнес-логики находится в PL/SQL, мы проводим такие эксперименты. Планируем по результатам написать статью, но пока могу сказать, что результаты более чем печальные.
0
В связи с этим мы были вынуждены, проанализировав и поправив логику приложения, в ущерб гибкости сконвертировать его в «подходящие» типы, например, в varchar2(100)
В Postgres вроде бы нет varchar2. Я так понимаю, перешли на VARCHAR обычный?
0
А как решили проблему с отсутствием в PostgreSQL такого понятия как пакеты?
0
Этот проект был простой и логики на PL/SQL не было. На соседнем проекте проводим эксперименты с конвертацией PL/SQL, но я пока не готов аргументированно показать «как надо». Думаю, по результатам, напишем ещё одну статью.
0
А пробовали просто создать dblink в Оракле на Постгре и залить данные на Постгре?
0
А разве есть connector?
0
В Оракле для любой БД можно создать коннектор. Например мы создали для mysql и писали туда данные из Оракла. Единственный нюанс нужно было писать 2 раза commit
0
Для MySQL есть родной как раз.
А вот для постгреса — насколько я знаю нет. Написать можно все что угодно конечно, хоть процедуру на C и ее в триггере вызывать. Сложность миграции при этом правда не снижается.
А вот для постгреса — насколько я знаю нет. Написать можно все что угодно конечно, хоть процедуру на C и ее в триггере вызывать. Сложность миграции при этом правда не снижается.
0
Если у вас в PostreSQL уже есть структура таблиц с индексами, то можно сделать и так. Но нам же нужно было создать структуру с нуля. DDL, который есть у вас в Oracle, один в один не выполнится в PostgreSQL, нужна конвертация. Вот тут Ora2Pg и пригодился.
0
Sign up to leave a comment.
Миграция данных из Oracle в PostgreSQL