Constantes de chaîne en notation hexadécimale

Depuis Firebird 2.5, les constantes de type chaîne peuvent être écrites en notation hexadécimale, ce que l'on appelle des "chaînes binaires". Chaque paire de chiffres hexadécimaux définit un octet dans la chaîne. Les chaînes de caractères entrées de cette façon auront l'encodage OCTETS par défaut, Mais introducer syntax peut être utilisé pour forcer la chaîne à être interprétée dans un jeu de caractères différent.

Syntaxe:
{x|X}'<hexstring>'

<hexstring> ::= an even number of <hexdigit>

<hexdigit> ::= 0..9 | A..F | a..f
Example 1. Exemples:
SELECT x'4E657276656E' FROM rdb$database
-- returns 4E657276656E, a 6-byte 'binary' string

SELECT _ascii x'4E657276656E' FROM rdb$database
-- returns 'Nerven' (same string, now interpreted as ASCII text)

SELECT _iso8859_1 x'53E46765' FROM rdb$database
-- returns 'Säge' (4 chars, 4 bytes)

SELECT _utf8 x'53C3A46765' FROM rdb$database
-- returns 'Säge' (4 chars, 5 bytes)
Note

La façon dont les chaînes binaires sont affichées dépend de l'interface client. Par exemple, l'utilitaire isql utilise les lettres majuscules A-F, tandis que FlameRobin utilise les lettres minuscules. D'autres peuvent utiliser d'autres règles de conversion, comme l'affichage d'espaces entre les paires d'octets : "4E 65 72 76 65 6E".

La notation hexadécimale permet d'insérer n'importe quel octet (y compris 00) à n'importe quelle position dans une chaîne.