Преобразование Oracle Db в PostgreSQL с использованием ora2pg

Я пытаюсь перенести свою базу данных Oracle в PostgreSQL с помощью инструмента Ora2pg. Файл DDL успешно экспортирован, но когда я пытаюсь импортировать его на сервер PostgreSQL, появляются некоторые ошибки, как показано ниже.

В Oracle есть ограничение проверки как условие IS JSON, при экспорте из Ora2PG оно генерируется как

 ALTER TABLE Temp_table ADD CONSTRAINT ensure_json1 CHECK (rpdata IS JSON);

Когда я пытаюсь выполнить то же самое на сервере PostgreSQL, получаю "Синтаксическая ошибка в или около JSON".

1 ответ

Вам не нужно это в Postgres.

Postgres имеет собственный тип данных JSON, который автоматически проверяет JSON. В Oracle вам нужно это проверочное ограничение, чтобы "превратить" CLOB в столбец JSON (без него значения не проверяются и некоторые операции JSON не работают)

Просто удалите это ограничение из скрипта Postgres (при условии, что столбец действительно определен как json или в идеале jsonb)

Другие вопросы по тегам