Los ejemplos usan datos generados (datalines) o SASHELP para crear tablas temporales o en memoria.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo ilustra la creación de una variable VARCHAR (X) y una variable CHAR (Y) con una longitud máxima de 30 caracteres/bytes. La variable X almacena la cadena sin desperdiciar espacio para los caracteres no utilizados, mientras que Y siempre asigna 30 bytes.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Este ejemplo demuestra la diferencia en la gestión de caracteres multibyte (como 'ã' en UTF-8) entre VARCHAR y CHAR. La variable 'ville_char' de longitud 10 bytes podría ser truncada si los caracteres multibyte exceden el límite de bytes, mientras que 'ville_varchar' de longitud 10 caracteres se adaptará correctamente, almacenando la cadena completa si su longitud de caracteres es respetada, independientemente del tamaño en bytes.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Este ejemplo muestra cómo manipular variables VARCHAR. Utiliza la función `SUBSTR` para extraer una subcadena de una variable VARCHAR y la función `CATX` para concatenar varios elementos (incluida otra variable VARCHAR) en una nueva variable VARCHAR. Esto ilustra la flexibilidad del tipo VARCHAR en las operaciones de manipulación de cadenas de caracteres.
Explicación : Este ejemplo avanzado ilustra la creación de una tabla directamente en el entorno CAS ('mycas' es una libname CAS) con variables VARCHAR. Muestra cómo se respetan las longitudes de las VARCHAR incluso con cadenas potencialmente muy largas, sin causar truncamiento visible en la visualización, siempre que el límite de caracteres declarado sea suficiente. El uso de `proc contents` confirma los tipos y longitudes efectivas en CAS. Destaca la integración natural de las VARCHAR en las operaciones de memoria distribuida de Viya.
¡Copiado!
/* 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; */
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.