Type : CREATION_INTERNE
Examples use data generated directly via DATA STEP blocks with 'datalines' or the 'CARS' table provided by SASHELP, loaded into CAS memory.
| 1 | /* Création d'une table SAS WORK locale */ |
| 2 | DATA work.produits; |
| 3 | INPUT ID $ NomProduit $ Prix; |
| 4 | DATALINES; |
| 5 | P001 Pomme 1.50 |
| 6 | P002 Orange 2.00 |
| 7 | P003 Banane 0.75 |
| 8 | P004 Fraise 3.20 |
| 9 | ; |
| 10 | RUN; |
| 11 | |
| 12 | /* Démarrage d'une session CAS et chargement de la table locale en mémoire CAS */ |
| 13 | PROC CAS; QUIT; |
| 14 | CAS casauto; |
| 15 | |
| 16 | PROC CAS; |
| 17 | SESSION casauto; |
| 18 | upload path="work.produits" casOut={name="produits_cas", replace=TRUE}; |
| 19 | RUN; |
| 20 | |
| 21 | /* Copie de la table 'produits_cas' vers 'produits_copie_basique' */ |
| 22 | PROC CAS; |
| 23 | SESSION casauto; |
| 24 | TABLE.copyTable / |
| 25 | TABLE={name="produits_cas"}, |
| 26 | casOut={name="produits_copie_basique", replace=TRUE}; |
| 27 | RUN; |
| 28 | |
| 29 | /* Vérification de la nouvelle table */ |
| 30 | PROC CAS; |
| 31 | SESSION casauto; |
| 32 | TABLE.tableInfo / |
| 33 | caslib="CASUSER", |
| 34 | name="produits_copie_basique"; |
| 35 | RUN; |
| 36 | QUIT; |
| 1 | /* Création d'une table SAS WORK locale */ |
| 2 | DATA work.ventes_region; |
| 3 | INPUT Region $ Produit $ Quantite; |
| 4 | DATALINES; |
| 5 | Nord A 100 |
| 6 | Sud B 150 |
| 7 | Est C 80 |
| 8 | Ouest A 200 |
| 9 | ; |
| 10 | RUN; |
| 11 | |
| 12 | /* Démarrage d'une session CAS (si non déjà active) */ |
| 13 | PROC CAS; QUIT; |
| 14 | CAS casauto; |
| 15 | |
| 16 | /* Création d'une nouvelle caslib pour la destination */ |
| 17 | PROC CAS; |
| 18 | SESSION casauto; |
| 19 | TABLE.addCaslib / |
| 20 | name="reports", |
| 21 | path="/tmp/cas_reports", /* Chemin physique sur le serveur CAS */ |
| 22 | dataSource={srcType="path"}, |
| 23 | subdirectories=TRUE, |
| 24 | replace=TRUE; |
| 25 | RUN; |
| 26 | |
| 27 | /* Chargement de la table locale en mémoire CAS dans CASUSER */ |
| 28 | PROC CAS; |
| 29 | SESSION casauto; |
| 30 | upload path="work.ventes_region" casOut={name="ventes_cas", replace=TRUE}; |
| 31 | RUN; |
| 32 | |
| 33 | /* Copie de 'ventes_cas' vers la caslib 'reports' et promotion de la table */ |
| 34 | PROC CAS; |
| 35 | SESSION casauto; |
| 36 | TABLE.copyTable / |
| 37 | TABLE={name="ventes_cas", caslib="CASUSER"}, |
| 38 | casOut={name="ventes_rapport", caslib="reports", promote=TRUE, replace=TRUE}; |
| 39 | RUN; |
| 40 | |
| 41 | /* Vérification de la nouvelle table dans la caslib 'reports' */ |
| 42 | PROC CAS; |
| 43 | SESSION casauto; |
| 44 | TABLE.tableInfo / |
| 45 | caslib="reports", |
| 46 | name="ventes_rapport"; |
| 47 | RUN; |
| 48 | |
| 49 | /* Nettoyage de la caslib temporaire */ |
| 50 | PROC CAS; |
| 51 | SESSION casauto; |
| 52 | TABLE.dropCaslib / caslib="reports", terminate=TRUE; |
| 53 | RUN; |
| 54 | QUIT; |
| 1 | /* Création d'une table SAS WORK locale plus complexe */ |
| 2 | DATA work.clients_info; |
| 3 | LENGTH ClientID $8 NomClient $20 Age 8 Revenu 8; |
| 4 | INPUT ClientID NomClient $ Age Revenu; |
| 5 | FORMAT Revenu DOLLAR10.2; |
| 6 | DATALINES; |
| 7 | C001 Dupont 35 50000 |
| 8 | C002 Martin 28 45000 |
| 9 | C003 Dubois 42 60000 |
| 10 | C004 Petit 55 75000 |
| 11 | ; |
| 12 | RUN; |
| 13 | |
| 14 | /* Démarrage d'une session CAS (si non déjà active) */ |
| 15 | PROC CAS; QUIT; |
| 16 | CAS casauto; |
| 17 | |
| 18 | /* Chargement de la table locale en mémoire CAS */ |
| 19 | PROC CAS; |
| 20 | SESSION casauto; |
| 21 | upload path="work.clients_info" casOut={name="clients_original", replace=TRUE}; |
| 22 | RUN; |
| 23 | |
| 24 | /* Copie de la table avec renommage de colonnes et ajout d'un label à la nouvelle table */ |
| 25 | PROC CAS; |
| 26 | SESSION casauto; |
| 27 | TABLE.copyTable / |
| 28 | TABLE={name="clients_original"}, |
| 29 | casOut={name="clients_processed", replace=TRUE, |
| 30 | label="Clients avec Informations Détaillées"}, |
| 31 | rename={{name="ClientID", newname="ID_Unique"}, |
| 32 | {name="Revenu", newname="RevenuAnnuel"}}; |
| 33 | RUN; |
| 34 | |
| 35 | /* Vérification de la nouvelle table et de ses colonnes */ |
| 36 | PROC CAS; |
| 37 | SESSION casauto; |
| 38 | TABLE.columnInfo / |
| 39 | caslib="CASUSER", |
| 40 | name="clients_processed"; |
| 41 | RUN; |
| 42 | |
| 43 | PROC CAS; |
| 44 | SESSION casauto; |
| 45 | TABLE.fetch / |
| 46 | caslib="CASUSER", |
| 47 | TABLE={name="clients_processed"}; |
| 48 | RUN; |
| 49 | QUIT; |
| 1 | /* Création d'une table SAS WORK locale de grande taille */ |
| 2 | DATA work.donnees_simulees; |
| 3 | DO i = 1 TO 10000; |
| 4 | ID = i; |
| 5 | Valeur1 = RANUNI(0) * 100; |
| 6 | Valeur2 = RANNORM(0) * 10; |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | RUN; |
| 10 | |
| 11 | /* Démarrage d'une session CAS (si non déjà active) */ |
| 12 | PROC CAS; QUIT; |
| 13 | CAS casauto; |
| 14 | |
| 15 | /* Création de deux caslibs pour la source et la destination */ |
| 16 | PROC CAS; |
| 17 | SESSION casauto; |
| 18 | TABLE.addCaslib / |
| 19 | name="source_data", |
| 20 | path="/tmp/cas_source", /* Chemin physique sur le serveur CAS */ |
| 21 | dataSource={srcType="path"}, |
| 22 | subdirectories=TRUE, |
| 23 | replace=TRUE; |
| 24 | TABLE.addCaslib / |
| 25 | name="destination_data", |
| 26 | path="/tmp/cas_destination", /* Chemin physique sur le serveur CAS */ |
| 27 | dataSource={srcType="path"}, |
| 28 | subdirectories=TRUE, |
| 29 | replace=TRUE; |
| 30 | RUN; |
| 31 | |
| 32 | /* Chargement de la table locale dans la caslib 'source_data' */ |
| 33 | PROC CAS; |
| 34 | SESSION casauto; |
| 35 | upload path="work.donnees_simulees" casOut={name="grande_table_source", caslib="source_data", replace=TRUE}; |
| 36 | RUN; |
| 37 | |
| 38 | /* Copie de la table de 'source_data' vers 'destination_data' */ |
| 39 | /* L'option 'nthreads' peut être utilisée pour optimiser la performance sur de grandes tables */ |
| 40 | PROC CAS; |
| 41 | SESSION casauto; |
| 42 | TABLE.copyTable / |
| 43 | TABLE={name="grande_table_source", caslib="source_data"}, |
| 44 | casOut={name="grande_table_dest", caslib="destination_data", replace=TRUE}, |
| 45 | nthreads=8; /* Utilise 8 threads pour la copie (nombre à ajuster selon le système) */ |
| 46 | RUN; |
| 47 | |
| 48 | /* Vérification de la table copiée dans la caslib de destination */ |
| 49 | PROC CAS; |
| 50 | SESSION casauto; |
| 51 | TABLE.tableInfo / |
| 52 | caslib="destination_data", |
| 53 | name="grande_table_dest"; |
| 54 | RUN; |
| 55 | |
| 56 | /* Nettoyage des caslibs temporaires (optionnel) */ |
| 57 | PROC CAS; |
| 58 | SESSION casauto; |
| 59 | TABLE.dropCaslib / |
| 60 | caslib="source_data", |
| 61 | terminate=TRUE; |
| 62 | TABLE.dropCaslib / |
| 63 | caslib="destination_data", |
| 64 | terminate=TRUE; |
| 65 | RUN; |
| 66 | QUIT; |