Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Type VARBYTE
Utilisez une colonne VARBYTE, VARBINARY ou BINARY VARYING pour stocker une valeur binaire de longueur variable avec une limite fixe.
varbyte [ (n) ]
Le nombre maximal d’octets (n) peut aller de 1 à 1 024 000. La valeur par défaut est 64 000.
Voici quelques exemples dans lesquels vous souhaiterez peut-être utiliser un type de données VARBYTE :
-
Joindre des tables sur des colonnes VARBYTE.
-
Création de vues matérialisées contenant des colonnes VARBYTE. L’actualisation progressive des vues matérialisées contenant des colonnes VARBYTE est prise en charge. Toutefois, les fonctions d’agrégation autres que COUNT, MIN et MAX et GROUP BY sur les colonnes VARBYTE ne prennent pas en charge l’actualisation progressive.
Pour vous assurer que tous les octets sont des caractères imprimables, utilisez le format AWS Clean Rooms hexadécimal pour imprimer les valeurs VARBYTE. Par exemple, le code SQL suivant convertit la chaîne hexadécimale 6162
en une valeur binaire. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal 6162
.
select from_hex('6162'); from_hex ---------- 6162
AWS Clean Rooms prend en charge le transfert entre VARBYTE et les types de données suivants :
-
CHAR
-
VARCHAR
-
SMALLINT
-
INTEGER
-
BIGINT
L’instruction SQL suivante convertit une chaîne VARCHAR en VARBYTE. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal 616263
.
select 'abc'::varbyte; varbyte --------- 616263
L’instruction SQL suivante convertit une valeur CHAR dans une colonne en VARBYTE. Cet exemple montre comment créer une table avec une colonne (c) CHAR(10) et insérer des valeurs de caractères inférieures à 10. La conversion résultante bloque le résultat avec des caractères d’espace (hex’20’) à la taille de colonne définie. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal.
create table t (c char(10)); insert into t values ('aa'), ('abc'); select c::varbyte from t; c ---------------------- 61612020202020202020 61626320202020202020
L’instruction SQL suivante convertit une chaîne SMALLINT en VARBYTE. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal 0005
, soit deux octets ou quatre caractères hexadécimaux.
select 5::smallint::varbyte; varbyte --------- 0005
L’instruction SQL suivante convertit un INTEGER en VARBYTE. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal 00000005
, soit quatre octets ou huit caractères hexadécimaux.
select 5::int::varbyte; varbyte ---------- 00000005
L’instruction SQL suivante convertit un BIGINT en VARBYTE. Même si la valeur renvoyée est une valeur binaire, les résultats sont imprimés en hexadécimal 0000000000000005
, soit 8 octets ou 16 caractères hexadécimaux.
select 5::bigint::varbyte; varbyte ------------------ 0000000000000005
Limitations liées à l'utilisation du type de données VARBYTE avec AWS Clean Rooms
Les limites suivantes s'appliquent à l'utilisation du type de données VARBYTE avec AWS Clean Rooms :
-
AWS Clean Rooms prend en charge le type de données VARBYTE uniquement pour les fichiers Parquet et ORC.
-
AWS Clean Rooms l'éditeur de requêtes ne prend pas encore entièrement en charge le type de données VARBYTE. Par conséquent, utilisez un client SQL différent lorsque vous utilisez des expressions VARBYTE.
Pour contourner l’utilisation de l’éditeur de requêtes, si la longueur de vos données est inférieure à 64 Ko et que le contenu est en UTF-8 valide, vous pouvez convertir les valeurs VARBYTE en VARCHAR, par exemple :
select to_varbyte('6162', 'hex')::varchar;
-
Vous ne pouvez pas utiliser les types de données VARBYTE avec des fonctions Python ou Lambda définies par l’utilisateur (UDF).
-
Vous ne pouvez pas créer de colonne HLLSKETCH à partir d’une colonne VARBYTE ou utiliser APPROXIMATIVE COUNT DISTINCT sur une colonne VARBYTE.