Les exemples utilisent des données générées (datalines) ou SASHELP pour créer des tables temporaires ou en mémoire.
1 Bloc de code
DATA STEP Data
Explication : Cet exemple illustre la création d'une variable VARCHAR (X) et d'une variable CHAR (Y) avec une longueur maximale de 30 caractères/octets. La variable X stocke la chaîne sans gaspiller d'espace pour les caractères non utilisés, tandis que Y alloue toujours 30 octets.
Copié !
data mycas.ex_base_string;
length x varchar(30);
length y $30;
x = 'Bonjour le monde';
y = 'Bonjour le monde';
run;
proc contents data=mycas.ex_base_string;
run;
1
DATA mycas.ex_base_string;
2
LENGTH x varchar(30);
3
LENGTH y $30;
4
x = 'Bonjour le monde';
5
y = 'Bonjour le monde';
6
RUN;
7
8
PROC CONTENTSDATA=mycas.ex_base_string;
9
RUN;
2 Bloc de code
DATA STEP Data
Explication : Cet exemple démontre la différence de gestion des caractères multi-octets (comme 'ã' en UTF-8) entre VARCHAR et CHAR. La variable 'ville_char' de longueur 10 octets pourrait être tronquée si les caractères multi-octets dépassent la limite d'octets, alors que 'ville_varchar' de longueur 10 caractères s'adaptera correctement, stockant la chaîne complète si sa longueur de caractères est respectée, indépendamment de la taille en octets.
Copié !
options encoding='utf-8';
data mycas.ex_troncature;
length ville_varchar varchar(10);
length ville_char $10;
ville_varchar = 'São Paulo'; /* 9 caractères, mais 'ã' est multi-octets en UTF-8 */
ville_char = 'São Paulo';
output;
run;
proc print data=mycas.ex_troncature;
title 'Comparaison VARCHAR et CHAR avec caractères multi-octets';
run;
proc contents data=mycas.ex_troncature;
run;
1
options encoding='utf-8';
2
3
DATA mycas.ex_troncature;
4
LENGTH ville_varchar varchar(10);
5
LENGTH ville_char $10;
6
7
ville_varchar = 'São Paulo'; /* 9 caractères, mais 'ã' est multi-octets en UTF-8 */
8
ville_char = 'São Paulo';
9
10
OUTPUT;
11
RUN;
12
13
PROC PRINTDATA=mycas.ex_troncature;
14
title 'Comparaison VARCHAR et CHAR avec caractères multi-octets';
15
RUN;
16
17
PROC CONTENTSDATA=mycas.ex_troncature;
18
RUN;
3 Bloc de code
DATA STEP Data
Explication : Cet exemple montre comment manipuler des variables VARCHAR. Il utilise la fonction `SUBSTR` pour extraire une sous-chaîne d'une variable VARCHAR et la fonction `CATX` pour concaténer plusieurs éléments (y compris une autre variable VARCHAR) en une nouvelle variable VARCHAR. Cela illustre la flexibilité du type VARCHAR dans les opérations de manipulation de chaînes de caractères.
Explication : Cet exemple avancé illustre la création d'une table directement dans l'environnement CAS ('mycas' est une libname CAS) avec des variables VARCHAR. Il montre comment les longueurs des VARCHAR sont respectées même avec des chaînes potentiellement très longues, sans provoquer de troncature visible dans l'affichage, tant que la limite de caractères déclarée est suffisante. L'utilisation de `proc contents` confirme les types et longueurs effectives en CAS. Il souligne l'intégration naturelle des VARCHAR dans les opérations en mémoire distribuée de Viya.
Copié !
/* Assurez-vous d'avoir une session CAS active */
cas mycas;
/* Crée une table CAS avec une variable VARCHAR */
data mycas.clients;
length client_id varchar(15) client_nom varchar(100);
client_id = 'C001';
client_nom = 'Dupont Martin';
output;
client_id = 'C002';
client_nom = 'Marie Dubois avec un nom très très long qui dépasse 100 caractères si on ne fait pas attention';
output;
run;
/* Affiche le contenu de la table CAS */
proc print data=mycas.clients;
title 'Clients avec VARCHAR en CAS';
run;
/* Vérifie la structure de la table CAS avec PROC CONTENTS */
proc contents data=mycas.clients;
title 'Contenu de la table CAS avec VARCHAR';
run;
/* Utilise PROC CASUTIL pour télécharger la table CAS vers une libname SAS */
/* Cela n'est pas nécessaire pour l'utilisation directe en CAS, mais montre l'interopérabilité */
/* proc casutil;
load casdata='clients' incaslib='mycas' outcaslib='casuser' replace;
run; */
/* Fin de la session CAS (facultatif, selon la gestion de la session) */
/* cas mycas terminate; */
1
/* Assurez-vous d'avoir une session CAS active */
2
cas mycas;
3
4
/* Crée une table CAS avec une variable VARCHAR */
/* Fin de la session CAS (facultatif, selon la gestion de la session) */
33
/* cas mycas terminate; */
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.