Exemples avec les types caractères - Amazon Redshift

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.

Exemples avec les types caractères

CREATETABLEdéclaration

L'CREATETABLEinstruction suivante illustre l'utilisation VARCHAR et les types de CHAR données :

create table address( address_id integer, address1 varchar(100), address2 varchar(50), district varchar(20), city_name char(20), state char(2), postal_code char(5) );

Les exemples suivants s’appuient sur cette table.

Blancs de fin dans les chaînes de caractères de longueur variable

Comme il ADDRESS1 s'agit d'une VARCHAR colonne, les blancs de fin de la deuxième adresse insérée sont sémantiquement insignifiants. En d’autres termes, les deux adresses insérées correspondent.

insert into address(address1) values('9516 Magnolia Boulevard'); insert into address(address1) values('9516 Magnolia Boulevard ');
select count(*) from address where address1='9516 Magnolia Boulevard'; count ------- 2 (1 row)

Si la ADDRESS1 colonne était une CHAR colonne et que les mêmes valeurs étaient insérées, la requête COUNT (*) reconnaîtrait les chaînes de caractères comme étant identiques et retournerait2.

Résultats de la LENGTH fonction

La LENGTH fonction reconnaît les espaces vides situés à la fin des colonnes : VARCHAR

select length(address1) from address; length -------- 23 25 (2 rows)

Une valeur de Augusta dans la NAME colonne CITY _, qui est une CHAR colonne, renvoie toujours une longueur de 7 caractères, quels que soient les blancs de fin de la chaîne d'entrée.

Valeurs qui dépassent la longueur de la colonne

Les chaînes de caractères ne sont pas tronquées pour s’adapter à la largeur déclarée de la colonne :

insert into address(city_name) values('City of South San Francisco'); ERROR: value too long for type character(20)

Une solution pour contourner ce problème consiste à convertir la valeur en la taille de la colonne :

insert into address(city_name) values('City of South San Francisco'::char(20));

Dans ce cas, les 20 premiers caractères de la chaîne (City of South San Fr) sont chargés dans la colonne.