Различное поведение (в резервной базе данных и в реальном времени) с точно такими же данными странно. Возможно, какая-то другая процедура или триггер портят ваш запрос в динамической базе данных.
Поскольку вы говорите, что не можете публиковать код здесь, я предложу кое-что, что вы можете попробовать исключить из других возможностей.
"Числовое переполнение или усечение строки." - ошибка, которую вы получаете.
- Имеет ли запрос
SUM()
или другой
функция аггегата?
- Имеет ли она какую-либо функцию для работы со строками?
Если да по любому из вышеперечисленных, попробуйте удалить любую такую часть, одну за другой, и выполнить измененный запрос. Таким образом, вы можете определить, какая часть запроса вызывает ошибку.
Примечание: одна и та же структура БД, одни и те же данные и один и тот же запрос делают не всегда с одинаковыми результатами из-за недетерминированных функций, например NOW()
и RAND()
Если результаты этих функций используются в дальнейших вычислениях, то арифметические ошибки, такие как деление на 0 или переполнение, или другие типы ошибок могут возникать в одном прогоне, а не в другом.