Преобразование 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
)