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

Instruction CREATE TABLE

L’instruction CREATE TABLE suivante illustre l’utilisation de types de données VARCHAR et CHAR :

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 ADDRESS1 est une colonne VARCHAR, 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 colonne ADDRESS1 était une colonne CHAR et que les mêmes valeurs étaient insérées, la requête COUNT(*) reconnaîtrait les chaînes de caractères comme identiques et retourneraient 2.

Résultats de la fonction LENGTH

La fonction LENGTH reconnaît les espaces de fin dans les colonnes VARCHAR :

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

La valeur Augusta dans la colonne CITY_NAME, qui est une colonne CHAR, renvoie toujours une longueur de 7 caractères, indépendamment des espaces de fin de la chaîne en 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.