У меня настроена внешняя таблица, которая указывает на таблицу в базе данных Oracle. Выдается очень досадная ошибка:
ORA-08177: can't serialize access for this transaction
Я немного прочитал, и одно из предложений:
alter server ni00dev options ( set isolation_level 'read_committed ');
Однако, похоже, это не работает:
zrec=# alter server ni00dev options ( set isolation_level 'read_committed ');
ERROR: option "isolation_level" not found
Есть какие-нибудь предложения, как избавиться от ORA-08177?
Большое спасибо!





Вы можете использовать опцию SET для значения только в том случае, если эта опция уже определена. В противном случае вам нужно ADD это сделать. Кроме того, значение параметра не должно содержать лишнего пробела.
ALTER SERVER ni00dev OPTIONS (ADD isolation_level 'read_committed');
Обратите внимание, что для этой опции вам потребуется oracle_fdw версии не ниже 2.3.0. Всегда рекомендуется запускать последнюю версию oracle_fdw.
Скорее всего. Но вы не рассказали нам эту важную деталь.
psql --version psql (PostgreSQL) 10.10 -- Если эта версия слишком ранняя для «read_commited», есть ли другие решения?
Версия oracle_fdw. См. документацию, как его получить. Также добавляйте новую информацию в вопрос, а не в комментарий.
@LandonStatis, имейте в виду, что PostgreSQL 10.10 уже почти пять лет, а срок окончания выпуска истек более года. Пожалуйста, обновите вашу систему!
Интересно, это проблема версии? zrec=# ИЗМЕНИТЬ ОПЦИИ СЕРВЕРА ni00dev (ДОБАВИТЬ уровень изоляции 'read_commit'); ОШИБКА: недопустимая опция «isolation_level»