Postgres - статьи


Почему при работе с моим большим объектом я получаю ошибку "invalid large obj descriptor"?


Вам нужно при использовании большого объекта поместить в начале BEGIN WORK и в конце COMMIT, а внутри получившегося блока lo_open ... lo_close.

В настоящий момент PostgreSQL требует, чтобы при закрытии большого объекта происходило выполнение транзакции. Таким образом, первая же попытка сделать что-либо с большим объектом, не соблюдая данного правила приведет к сообщению invalid large obj descriptor, так как код выполняющий работу над большим объектом (по крайней мере в настоящий момент) будет генерировать сообщение об ошибке если вы не используете транзакцию.

Если вы используете такой интерфейс клиента как ODBC, вам возможно понадобится установить auto-commit off.



Содержание раздела