Veröffentlicht am :
Datenmanipulation CREATION_INTERNE

SAS-Datentypen in CAS

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Datentypen in SAS© Cloud Analytic Services definieren die Art der in jeder Tabellenspalte gespeicherten Informationen und beeinflussen direkt die zugewiesene Speichermenge und die Art und Weise, wie Werte verarbeitet werden.
  • CHAR(n): Für Zeichenketten fester Länge, wobei `n` die maximale Anzahl der Zeichen ist. Kürzere Werte werden mit Leerzeichen aufgefüllt. Dieser Typ unterstützt keine ANSI SQL NULL-Werte.
  • VARCHAR(n): Für Zeichenketten variabler Länge. Werte werden nicht mit Leerzeichen aufgefüllt. Ideal für Daten, deren Länge variiert. `VARCHAR(*)` kann verwendet werden, wenn die maximale Länge nicht bekannt ist, dies kann jedoch zu einer Konvertierung in `CHAR(32767)` führen, wenn in Bibliotheken kopiert wird, die `VARCHAR` nicht unterstützen.
  • DOUBLE: Stellt eine Gleitkommazahl doppelter Präzision (64 Bit) dar, die eine große Größenordnung und hohe Präzision ermöglicht und fehlende Werte unterstützt.
Die folgenden Beispiele veranschaulichen die Verwendung dieser Datentypen in der SAS© Viya 4-Umgebung mit CASL-Interaktionen.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP, wodurch deren Autonomie und direkte Ausführung gewährleistet ist.

1 Codeblock
DATA STEP Data
Erklärung :
Dieses einfache Beispiel erstellt eine CAS-Tabelle namens `fixed_char` mit einer Spalte `name` vom Typ `CHAR(10)`. Die zugewiesenen Werte sind 10 Zeichen oder kürzer und werden bei Bedarf mit Leerzeichen nach rechts aufgefüllt. `proc print` wird verwendet, um die Tabelle anzuzeigen.
Kopiert!
1/* Création d'une table CAS avec une colonne CHAR de longueur fixe */
2cas libref=casuser;
3 
4DATA casuser.fixed_char;
5 LENGTH name char(10);
6 name = 'Alice';
7 OUTPUT;
8 name = 'Bob';
9 OUTPUT;
10RUN;
11 
12/* Affichage du contenu de la table pour vérifier */
13PROC PRINT DATA=casuser.fixed_char;
14RUN;
15 
16/* Nettoyage */
17PROC CAS;
18 TABLE.dropTable RESULT=r / name='fixed_char' caslib='casuser';
19 PRINT r;
20RUN;
21QUIT;
2 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel verwendet den Typ `VARCHAR(50)` für die Spalte `description`. Es ist zu beobachten, dass die Werte mit ihrer tatsächlichen Länge ohne Auffüllung gespeichert werden, auch wenn sie kürzer als die definierte Maximallänge sind. `proc columnInfo` wird verwendet, um die Spaltenattribute, einschließlich ihrer Längen, zu überprüfen.
Kopiert!
1/* Création d'une table CAS avec une colonne VARCHAR de longueur explicite */
2cas libref=casuser;
3 
4DATA casuser.varying_char_example;
5 LENGTH description varchar(50);
6 description = 'Ceci est une description courte.';
7 OUTPUT;
8 description = 'Ceci est une description beaucoup plus longue qui utilise plus de caractères.';
9 OUTPUT;
10 description = 'Court';
11 OUTPUT;
12RUN;
13 
14/* Affichage du contenu et des informations sur les colonnes pour vérifier les longueurs réelles */
15PROC PRINT DATA=casuser.varying_char_example;
16RUN;
17 
18PROC CAS;
19 TABLE.columnInfo RESULT=c / TABLE='varying_char_example' caslib='casuser';
20 PRINT c;
21RUN;
22QUIT;
23 
24/* Nettoyage */
25PROC CAS;
26 TABLE.dropTable RESULT=r / name='varying_char_example' caslib='casuser';
27 PRINT r;
28RUN;
29QUIT;
3 Codeblock
DATA STEP Data
Erklärung :
Dieses Beispiel veranschaulicht die Verwendung des Typs `DOUBLE` zum Speichern von Zahlen mit hoher Präzision, einschließlich sehr kleiner und sehr großer Zahlen sowie fehlender Werte. `proc columnInfo` bestätigt den Spaltentyp, und `table.fetch` wird verwendet, um die Daten abzurufen und anzuzeigen, was die Handhabung fehlender Werte und die Präzision von Gleitkommazahlen demonstriert.
Kopiert!
1/* Création d'une table CAS avec une colonne DOUBLE incluant des valeurs manquantes et des nombres à haute précision */
2cas libref=casuser;
3 
4DATA casuser.double_advanced;
5 INPUT num_val;
6 DATALINES;
7100.123456789
8.
91.23456789123456789E-10
10-5.6789123456789E+12
11;
12RUN;
13 
14/* Affichage des informations sur les colonnes pour confirmer le type DOUBLE */
15PROC CAS;
16 TABLE.columnInfo RESULT=c / TABLE='double_advanced' caslib='casuser';
17 PRINT c;
18RUN;
19 
20/* Récupération et affichage des données pour montrer la précision et les manquants */
21PROC CAS;
22 TABLE.fetch RESULT=f / TABLE='double_advanced' caslib='casuser';
23 PRINT f;
24RUN;
25QUIT;
26 
27/* Nettoyage */
28PROC CAS;
29 TABLE.dropTable RESULT=r / name='double_advanced' caslib='casuser';
30 PRINT r;
31RUN;
32QUIT;
4 Codeblock
DATA STEP / PROC CONTENTS Data
Erklärung :
Dieses fortgeschrittene Beispiel zeigt, wie sich die Typen `VARCHAR(*)` und `CHAR(n)` verhalten, wenn eine CAS-Tabelle in eine Standard-SAS-Bibliothek (Nicht-CAS) kopiert wird. Es ist zu beachten, dass `VARCHAR(*)` in einem Nicht-CAS-Kontext in eine Spalte vom Typ `CHAR(32767)` konvertiert werden kann, während `CHAR(n)` seine feste Länge beibehält und Daten abschneidet, wenn sie zu lang sind. `PROC CONTENTS` wird verwendet, um die Spaltenlängen nach dem Kopieren zu überprüfen.
Kopiert!
1/* Initialise une session CAS */
2cas libref=casuser;
3 
4/* Crée une table CAS avec une colonne VARCHAR(*) */
5DATA casuser.varchar_star_orig;
6 LENGTH comments varchar(*);
7 comments = 'Un commentaire.'; OUTPUT;
8 comments = 'Un commentaire très long, dont la taille maximale n''est pas prédéfinie, pour observer l''impact lors de la copie.'; OUTPUT;
9RUN;
10 
11/* Crée une table CAS avec une colonne CHAR(10) */
12DATA casuser.char_fixed_orig;
13 LENGTH short_text char(10);
14 short_text = 'Hello'; OUTPUT;
15 short_text = 'WorldLonger'; /* Sera tronqué */
16 OUTPUT;
17RUN;
18 
19/* Copie les tables CAS vers une bibliothèque de travail SAS standard */
20/* Remarque: La bibliothèque WORK est un chemin local non-CAS. */
21/* Pour une exécution hors de SAS Studio/Viya, ajuster le LIBNAME si nécessaire */
22LIBNAME work clear;
23 
24DATA work.varchar_star_copy;
25 SET casuser.varchar_star_orig;
26RUN;
27 
28DATA work.char_fixed_copy;
29 SET casuser.char_fixed_orig;
30RUN;
31 
32/* Vérifie les attributs des colonnes dans la table copiée */
33PROC CONTENTS DATA=work.varchar_star_copy varnum; RUN;
34PROC CONTENTS DATA=work.char_fixed_copy varnum; RUN;
35 
36/* Affiche le contenu de la table CHAR pour voir la troncature */
37PROC PRINT DATA=work.char_fixed_copy;
38RUN;
39 
40/* Nettoyage des tables CAS */
41PROC CAS;
42 TABLE.dropTable RESULT=r / name='varchar_star_orig' caslib='casuser';
43 PRINT r;
44 TABLE.dropTable RESULT=r / name='char_fixed_orig' caslib='casuser';
45 PRINT r;
46RUN;
47QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved.