Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5.9 и Statement failed, SQLSTATE = 22003 / 5 сообщений из 5, страница 1 из 1
11.01.2021, 17:45
    #40034913
autosoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 2.5.9 и Statement failed, SQLSTATE = 22003
Добрый день всем.

Есть вопрос про Firebird 2.5.9 и ошибку:

Statement failed, SQLSTATE = 22003
Integer overflow. The result of an integer operation caused the most significant bit of the result to carry.

Почему вот такой запрос генерирует эту ошибку?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
execute block
as
declare variable a numeric(18,4);
declare variable b numeric(18,4);
declare variable c numeric(18,4);
begin
    a = 100;
    b = 1000;
    c = 10000;
    a = a * b * c;
end



Если строчку
Код: sql
1.
a = a * b * c;


переписать как
Код: sql
1.
2.
a = a * b;
a = a * c;


то этой ошибки уже нет.

Почему генерируется ошибка в первом случае?
...
Рейтинг: 0 / 0
11.01.2021, 18:01
    #40034915
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 2.5.9 и Statement failed, SQLSTATE = 22003
autosoft,

Ну наверное считает что a * b * c будет иметь тип (18,12)
...
Рейтинг: 0 / 0
11.01.2021, 22:33
    #40034952
MikeDD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 2.5.9 и Statement failed, SQLSTATE = 22003
...
Рейтинг: 0 / 0
12.01.2021, 01:25
    #40034962
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 2.5.9 и Statement failed, SQLSTATE = 22003
m7m
autosoft,

Ну наверное считает что a * b * c будет иметь тип (18,12)

Но не "считает", что a * b будет иметь тип (18,8)? :)
...
Рейтинг: 0 / 0
12.01.2021, 07:41
    #40034979
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird 2.5.9 и Statement failed, SQLSTATE = 22003
ъъъъъ
m7m
autosoft,

Ну наверное считает что a * b * c будет иметь тип (18,12)

Но не "считает", что a * b будет иметь тип (18,8)? :)


считает. Но 100 * 1000 его не переполняет.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5.9 и Statement failed, SQLSTATE = 22003 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]