Hexadezimales Format für Ganzzahlen
Ab Firebird 2.5 können Konstanten der drei Integer-Typen im hexadezimalen Format mit 9 bis 16 hexadezimalen Stellen für BIGINT
bzw. 1 bis 8 Stellen für INTEGER
angegeben werden.Die Hex-Darstellung zum Schreiben in SMALLINT
wird nicht explizit unterstützt, aber Firebird wandelt eine Hex-Zahl bei Bedarf transparent in SMALLINT
um, sofern sie in den negativen und positiven SMALLINT
-Bereich fällt.
Note
|
Die hexadezimalen Integer-Literale unterstützen derzeit keine 'INT128'-Werte. |
Die Verwendung und die numerischen Wertebereiche der hexadezimalen Notation werden in der Diskussion zu Zahlenkonstanten im Kapitel Allgemeine Sprachelemente genauer beschrieben.
CREATE TABLE WHOLELOTTARECORDS (
ID BIGINT NOT NULL PRIMARY KEY,
DESCRIPTION VARCHAR(32)
);
INSERT INTO MYBIGINTS VALUES (
-236453287458723,
328832607832,
22,
-56786237632476,
0X6F55A09D42, -- 478177959234
0X7FFFFFFFFFFFFFFF, -- 9223372036854775807
0XFFFFFFFFFFFFFFFF, -- -1
0X80000000, -- -2147483648, ein INTEGER
0X080000000, -- 2147483648, ein BIGINT
0XFFFFFFFF, -- -1, ein INTEGER
0X0FFFFFFFF -- 4294967295, ein BIGINT
);
Die hexadezimalen INTEGER
s im obigen Beispiel werden automatisch in BIGINT
umgewandelt, bevor sie in die Tabelle eingefügt werden.Dies geschieht jedoch nach der Zahlenwert ermittelt wurde, also werden 0x80000000
(8 Stellen) und 0x080000000
(9 Stellen) als unterschiedliche BIGINT
Werte gespeichert.