|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Доброго времени суток. Столкнулись с проблемой создания бэкапа базы данных на Interbase 2009. При создании бэкапа выдается ошибка "Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation.". Для определения в чем проблема я сгенерировал скрипты insert для всех таблиц и увидел, что в скриптах для нескольких таблиц с полями типа varchar insert для символьного поля генерирует строку: ' текст в поле ' Причем это только для строк, длина которых близка к указанной в длине этого поля (длина поля 250, длина текста 249). То есть длина текста подходит для поля, но из-за символов новой строки длина поля превышена. Исходя из этого я понял, что проблема в символах новой строки. Если увеличить длину этих полей, бэкап проходит нормально. Вопрос - как могли добавиться символы новой строки? С базой работали через приложение на делфи и оно выдает ошибку ошибку в случае длины строки большей длины поля... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 07:33 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00, Про Delphi это в соседний форум. Перед отправкой с приложения на сервер удалите символы #10,#13 и будет норм. Удачи ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 08:32 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00Столкнулись с проблемой создания бэкапа базы данных на Interbase 2009. Именно при создании именно бэкапа? Какой командой его создаёте? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 12:53 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00, скорее вопрос, зачем в базе уменьшали длину строкового поля, после того как туда напихали длинных данных. Именно поэтому при бэкапе - а он читает все данные всех таблиц - и вылезла ошибка. Точно такая же ошибка будет если вы сделаете select * from та_таблица. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 13:41 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Бэкап создавал через IBExpert. Проблема обнаружилась при попытке уменьшить размер БД. Чтобы узнать в чем проблема, сгенерировал инсерты в IBExpert и обнаружил что длинные строки записаны криво (короткие строки в сгенерированном скрипте записаны правильно). Длину поля не меняли, селекты работают без проблем. Есть подозрение что это какой-то глюк Interbase или IBExpert, так как приложение через которое работают с бд не дало бы отправить строку длиннее 250 символов. Не знаю как быть в данной ситуации, руками заменять все вхождения '\n на ' не хочется) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 08:40 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ошибка при создании бэкапа и ясно почему она выдается. Вопрос в том, почему инсерты сгенерировались с символами новой строки для длинных строк ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 08:41 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00, это не вопрос. серверу пофиг, есть в строке переводы строк, или нет. Nick00Длину поля не меняли не верю. в строку нельзя записать данных больше ее объявленой длины. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 10:28 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00 Бэкап создавал через IBExpert А бэкап через gbak тоже с ошибкой? Что в логе бэкапа, он точно выдает ошибку на той таблице, у которой по вашим словам проблема с размерностью поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 14:04 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Gallemar, там сначала надо дать запрос типа select r.rdb$relation_name, count(f.rdb$format) from rdb$relations r join rdb$formats f on r.rdb$relation_id = f.rdb$relation_id group by 1 order by 2 desc и посмотреть сколько форматов у той проблемной таблицы. Если там 1 - то это "неведомая хня". Если больше 1 - то, "меняли длину столбца через ибэксперт". p.s. ситуации, когда код гбака отличался от кода в services api были, но очень давно и вроде один раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 15:46 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
kdv Nick00, скорее вопрос, зачем в базе уменьшали длину строкового поля, после того как туда напихали длинных данных. Именно поэтому при бэкапе - а он читает все данные всех таблиц - и вылезла ошибка. Точно такая же ошибка будет если вы сделаете select * from та_таблица. Блин, я и не знал про такое. :( "Несоздаваемый" бэкап. В дополнение к "невосстановимым". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 20:04 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
ъъъъъ, да ладно. было строковое поле, с какими-то "кодами товара", а потом его херакс, и поменяли на integer. Ну и всё. Сервер-то откуда знает, что там есть "неконвертируемые" символы. Бэкап тут совсем ни при чем, данные тупо не будут читаться никаким запросом. А поскольку бэкап читает данные, то у него тоже не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 02:10 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
kdv ъъъъъ, да ладно. было строковое поле, с какими-то "кодами товара", а потом его херакс, и поменяли на integer. Ну и всё. Сервер-то откуда знает, что там есть "неконвертируемые" символы. Бэкап тут совсем ни при чем, данные тупо не будут читаться никаким запросом. А поскольку бэкап читает данные, то у него тоже не получится. Дык, если и строковое поле в строковое, и с меньшей длиной - то же самое будет, при чем тут конверсия. п....ц, однако. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 02:22 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
ъъъъъ Дык, если и строковое поле в строковое, и с меньшей длиной - то же самое будет, при чем тут конверсия. п....ц, однако. Тебя это удивляет? Вроде бы очевидный факт природы. И склероз мне шепчет о каких-то толковищах на эту тему аж где-то в 97-98 году, когда kdv работал в Эпсилон и тамошний форум был единственной IB-тусовкой в эсэсэсэре. И даже о том, что так делать альтер не позволял и энтузиасты, перед тем, как горько заплакать, хачили системные таблицы. А потом сей хак, вкупе с ещё некоторыми альтерами, которые IB не принимало, ввела в свой MDI-интерфейс одна популярная программа для конструирования и администрирования баз. Но, как я есть старый маразматег, это запросто могут быть сказки, легенды и тосты :) А консервия - ну что консервия, слово красивое, конфликт вона тоже дедлоком до сих пор величают и даже при неправильно введённом пароле ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 03:26 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка Тебя это удивляет? Вроде бы очевидный факт природы. А вот ни разу не нарывался, представь себе. С 2002г (о, Господи...). Практически всегда, если и изменял длину, то лишь увеличивая её. А когда чувствовал возможность потери данных при преобразовании - всегда обрабатывал данные "ручками". ... Ну нифига ж себе, однако. "Несоздаваемый бэкап". И, похоже, что даже коллега Yo! про такое не зал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 06:45 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Перед полным впадением в маразм панику, советую сначала попробовать это воспроизвести. IB не предлагать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 12:43 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
kdv, Для проблемной таблицы выдается значение 2. Может кто-то и менял длину поля, но если меняли, то в сторону увеличения... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 04:14 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00, теперь уже не узнать, в какую сторону меняли. Хотя, если есть древние бэкапы, можно посмотреть на размер столбца там. Если это кому-то нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 11:48 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
kdv Nick00, теперь уже не узнать, в какую сторону меняли. Хотя, если есть древние бэкапы, можно посмотреть на размер столбца там. Если это кому-то нужно. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 12:09 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
hvlad, - везде одинаково, и в иб и фб - я выше уже давал запрос, его выполнили, там 2 формата в "проблемной таблице". Так-то формат можно было попробовать "рашфировать", но это не для слабонервных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 12:49 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
kdv Так-то формат можно было попробовать "рашфировать", но это не для слабонервных. Код: sql 1.
написал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 12:55 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
hvlad, Интересно. В этом запросе rdb$relation_id я так понимаю сравнивается с числом. Как узнать его для нужного поля нужной таблицы? И ругается на строку Код: sql 1.
сообщением Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, char 4. blob. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 05:35 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Для исправления ситуации было решено в скрипте удалить новые строки после и перед кавычкой в текстовом редакторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 05:35 |
|
Ошибка Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric
|
|||
---|---|---|---|
#18+
Nick00 В этом запросе rdb$relation_id я так понимаю сравнивается с числом. Как узнать его для нужного поля нужной таблицы? Nick00 И ругается на строку Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 10:48 |
|
|
start [/forum/topic.php?fid=40&tid=1559837]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 399ms |
0 / 0 |