Я пытаюсь перенести oracle db в postgres, используя ora2pg.Просто для тестирования я создал таблицу в определенной схеме и запустил ora2pg, который генерирует файл .sql, и я запустил \ i .sql для postgres и до сих пор работал нормально, но сценарий изменился.Мне нужно импортировать этот файл .sql непосредственно в базу данных postgres.В файле ora2pg.conf есть директива:
**Define the following directive to send export directly to a PostgreSQL
database. This will disable file output.**
*PG_DSN dbi:Pg:dbname=testdb;host=ip_address;port=port_no
PG_USER postgres PG_PWD postgres*
Соответствует ли этот раздел конфигурации моему вышеупомянутому требованию.Удаленное соединение для postgres, где нам нужно запустить инструмент ora2pg, работает нормально.когда я запускаю
ora2pg -d:
output>>
Ora2Pg version: 18.2
Trying to connect to database: *dbi:Oracle:host=host_address;sid=odb_sid;port=odb_port*
Isolation level: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
Looking forward functions declaration in schema srschema.
Retrieving table information...
[1] Scanning table TEST_TBL (1 rows)...
Retrieving table information...
[1] Scanning table TEST_TBL (1 rows)...
Warning duplicate table TEST_TBL, maybe a SYNONYM ? Skipped.
Retrieving procedures information...
Retrieving functions information...
Dumping table TEST_TBL...
Trying to connect to database:
dbi:Oracle:host=host_address;sid=odb_sid;port=odb_port
Isolation level: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
Retrieving partitions information...
Невозможно вызвать метод "do" для неопределенного значения в * 528 *
/ usr / local / share / perl5 / Ora2Pg.pm строка 5223. ВыпускОткат () из-за DESTROY без явного отсоединения () дескриптора DBD :: Oracle :: db (ОПИСАНИЕ = (ADDRESS = (HOST = host_address) (PROTOCOL = tcp) (PORT = odb_port)) (CONNECT_DATA = (SID = odb_sid))) в /usr/local/share/perl5/Ora2Pg.pm строка 5223.
Сервер, с которого будет запускаться ora2pg, и соединение с сервером postgres работает нормально.