Если вы получили ошибку -857, есть вероятность, что таблица фрагментирована и была создана без опции WITH ROWIDS
.
Какую версию Informix вы используете и на какой платформе?
Высоки шансы, что у вас есть оператор TRUNCATE TABLE , который действительно предназначен для очень быстрого удаления всех строк из таблицы.
В противном случае вы можете использовать прямолинейное:
DELETE FROM TableName;
до тех пор, пока у вас есть достаточно места для логического журнала. Если это не сработает, вам придется делать повторные операторы DELETE на основе диапазонов первичного ключа (или любого другого удобного столбца).
Или вы можете рассмотреть возможность удаления таблицы и ее создания заново, возможно с предложением WITH ROWIDS (хотя я бы особо не рекомендовал использовать предложение WITH ROWIDS - он становится физическим столбцом с индексом, а не виртуальным столбцом, поскольку находится в не фрагментированной таблице). Одним из недостатков удаления и перестройки таблицы является то, что референтные ограничения должны быть восстановлены, и любые представления, построенные на таблице, автоматически удаляются при удалении таблицы, поэтому их также необходимо восстанавливать.