Метод selectrow_array
предназначен для использования с операторами, возвращающими наборы результатов. Оператор SET ISOLATION не является таким оператором - он потерпит неудачу.
Вопрос о том, является ли ошибка -400 наилучшей из возможных, является спорным вопросом - когда-нибудь я посмотрю и посмотрю, можно ли что-нибудь сделать. Однако в IIRC метод selectrow_array
предоставляется DBI, а не DBD :: Informix, поэтому DBI строит его из примитивов более низкого уровня. Следовательно, эти примитивы не могут обеспечить проверку, которую могла бы обеспечить функция более высокого уровня, потому что они также должны работать отдельно.
Правильный способ написать этот код:
$db_handle->do("set isolation mode to dirty read");