2015-09-04 4 views
0

Я использую ora2pg для переноса моих данных из oracle в базу данных postgres. В качестве начального шага я экспортирую схему. Я обнаружил, что сгенерированный sql-файл содержит много ошибок, таких как дублирующие операторы sql, дублирующие параметры в функциях, которые не выполняются при выполнении sql. Я пытаюсь вручную исправить эти ошибки в сгенерированном файле sql. Есть ли лучший способ или избежать этой ошибки в файле sql. На самом деле мне просто нужно перенести данные из oracle в базу данных postgres. Но не знаю, возможно ли это. Я использую Ora2Pg 15.3, а моя версия postgres - 8.4. Я использую пространственную базу данных.Ora2Pg не работает должным образом

Благодаря

+2

Postgres 8.4 больше не поддерживается или поддерживается. Почему вы переходите к такой устаревшей версии _today_? Если вам нужен какой-либо ответ на ваш вопрос, вы должны показать нам оригинальный Oracle DDL, сгенерированные операторы для Postgres и полную конфигурацию для Ora2Pg. Когда я использовал Ora2Pg, у меня не было таких проблем. –

+0

Если вы переносите * только данные *, вы можете, возможно, экспортировать CSV, а затем импортировать в PostgreSQL с помощью 'COPY'. Хотя это может не работать с географическими данными. Другой вариант - это инструмент ETL. Все точки лошади полностью действительны, хотя ... в первую очередь версия. 8.4. Зачем? –

+0

См. Проблему в том, что созданный файл sql имеет эти ошибки. Таким образом, до этого момента postgres не отображается. Возможно, я могу использовать более новую версию. Но до этого момента задействованы только ora2pg 15.3 (последний) и мгновенный клиент oracle 12.1. – Shariq

ответ

0

вы можете попробовать обновить PostgreSQL.
С версией 9.1 версии postgresql и Ora2Pg 17.5 все работает правильно.
Но не забудьте установить версию DBI-1636 или более поздней, DBD-Oracle-1.74 или более поздней, DBD-Pg-3.5.3 или более поздней. Кроме того, вы установите клиент оракула,

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm 
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm 
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm 

, например.

и установить правильный путь

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib 
export ORACLE_HOME=/usr/lib/oracle/12.1/client64/ 
Смежные вопросы