Начало » Использование СУБД » Firebird, HQbird, InterBase » int128 и шестнадцатеричная нотация
int128 и шестнадцатеричная нотация [сообщение #4706] |
Wed, 27 March 2024 11:49  |
МП
Сообщений: 889 Зарегистрирован: August 2022 Географическое положение: бурятский тун...
|
Senior Member |
|
|
продолжаю тестировать int128 и всякое прочее.
SELECT 0x8000000000000000 FROM RDB$DATABASE; --int64
CONSTANT
=====================
-9223372036854775808
добавляем ещё одну тетраду, чтоб выйти за предел int64 и получаем облом
SELECT 0x18000000000000000 FROM RDB$DATABASE; --int128
CONSTANT
=====================
Statement failed, SQLSTATE = 22003
Dynamic SQL Error
-SQL error code = -303
-arithmetic exception, numeric overflow, or string truncation
-Integer overflow. The result of an integer operation caused the most significant bit of the result to carry.
Firebird/Linux/AMD/Intel/x64 (access method),
version "LI-V4.0.2.2816 Firebird 4.0"
on disk structure version 13.0
Dialect 3.
Согласно доке, начиная с Firebird 4.0.1 числа состоящие из 17-32 шестнадцатеричных цифр должны интерпретироваться как int128.
что я не так делаю?
|
|
|
|
|
|
Re: int128 и шестнадцатеричная нотация [сообщение #4710 является ответом на сообщение #4709] |
Wed, 27 March 2024 12:14   |
hvlad
Сообщений: 365 Зарегистрирован: August 2022
|
Senior Member |
|
|
hvlad писал(а) Wed, 27 March 2024 11:11МП писал(а) Wed, 27 March 2024 11:00значит на Линухе облом
Или кто-то поредактировал конфиг, или триггер на коннект сделал нехороший.
Database: employee, User: SYSDBA
SQL> SELECT 0x18000000000000000 FROM RDB$DATABASE;
CONSTANT
=============================================
27670116110564327424
SQL> set bind of int128 to numeric(18);
SQL>
SQL> SELECT 0x18000000000000000 FROM RDB$DATABASE;
CONSTANT
=====================
Statement failed, SQLSTATE = 22003
Dynamic SQL Error
-SQL error code = -303
-arithmetic exception, numeric overflow, or string truncation
-Integer overflow. The result of an integer operation caused the most significant bit of the result to carry.
Но виноват, конечно, линукс
|
|
|
|
|
|
|
|
Переход к форуму:
Текущее время: Sat Feb 22 17:59:34 GMT+3 2025
Общее время, затраченное на создание страницы: 0.00789 секунд
|