рамках транзакции. Это ограничение базы. Обойти его драйвер не может. Ну и периодически мы (как пользователи и по совместительству maintainer’ы) ходим в backend со словми «сделайте, плз, чтобы работало fetch size вне транзакций», но они такие: «ой, вам зачем? не будем»
Самый явный пример из недавнего — это когда «ошибка во время commit’а» возвращалось из базы как «commit successfully rolledback»
Т.е. де-факто, клиент думал, что ошибки нет, а транзакция откачена. Половина драйверов умеет это распознавать, половина нет. Но backend пока не удалось убедить в том, что «если операция commit не смогла зафиксировать, то это должна быть ошибка, а не просто запись в логе»
Понятно, спасибо. Ну setFetchSize() всё-таки преподносится как "hint", а значит надо курить доки драйвера, чтобы понять, как он работает. Но остаётся лёгкое ощущение того, что опять абстракция протекла.
Какие страхи. Не припомню чтобы у меня с оракловыми драйверами такое было...
Обсуждают сегодня