Publié le :
Accès aux données CREATION_INTERNE

Éléments d'affectation de bibliothèque

Ce code est également disponible en : Deutsch English Español
L'affectation d'une bibliothèque SAS© via l'instruction LIBNAME permet de référencer un emplacement physique de données. Elle est composée d'un libref (nom raccourci), d'un moteur de bibliothèque (souvent V9 par défaut), de l'emplacement du dossier, et d'options spécifiques. Les affectations sont valides pour la session en cours, à moins d'être rendues persistantes. Le document détaille les règles de syntaxe, les situations où un libref n'est pas nécessaire et les meilleures pratiques pour une gestion efficace des données SAS©.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP.

1 Bloc de code
LIBNAME statement
Explication :
Cet exemple montre l'affectation d'une bibliothèque SAS à un dossier local. L'instruction `LIBNAME` crée une référence (libref 'mylib') pointant vers un emplacement physique. Nous utilisons `V9` comme moteur de bibliothèque, qui est le moteur par défaut pour les fichiers SAS traditionnels. Ensuite, une petite table `test_data` est créée et sauvegardée dans cette bibliothèque. `PROC PRINT` est utilisée pour afficher le contenu de la table. Enfin, la bibliothèque est désaffectée de la session SAS avec `LIBNAME mylib clear;`.
Copié !
1/* Crée un dossier temporaire pour la bibliothèque si nécessaire */
2/* Remplacez 'chemin/vers/votre/bibliotheque' par un chemin réel */
3/* Pour SAS Viya, cela pourrait être un chemin CAS ou un chemin de système de fichiers accessible */
4/* Ici, nous utilisons un dossier local simulé pour l'exemple */
5 
6/* Affecte la bibliothèque 'mylib' au chemin spécifié */
7LIBNAME mylib V9 '%sysfunc(pathname(WORK))/my_sas_library';
8 
9/* Crée une table simple dans la bibliothèque 'mylib' */
10DATA mylib.test_data;
11 INPUT id name $;
12 DATALINES;
131 John
142 Jane
153 Mike
16;
17RUN;
18 
19/* Affiche le contenu de la table */
20PROC PRINT DATA=mylib.test_data;
21 title 'Contenu de mylib.test_data';
22RUN;
23 
24/* Désaffecte la bibliothèque */
25LIBNAME mylib clear;
26 
2 Bloc de code
LIBNAME statement avec options
Explication :
Cet exemple illustre l'utilisation d'une option de bibliothèque. Le libref 'readonly' est affecté au moteur V9 avec l'option `ACCESS=READONLY`. Cela signifie que les utilisateurs ne pourront que lire les données de cette bibliothèque, et toute tentative d'écriture ou de modification (comme la création de 'new_table' dans l'exemple) entraînera une erreur SAS. Cela est utile pour protéger l'intégrité des données. Le code inclut une simulation de fichier existant pour que l'accès en lecture seule ait un sens.
Copié !
1/* Affecte une bibliothèque en mode lecture seule */
2LIBNAME readonly V9 '%sysfunc(pathname(WORK))/my_read_only_library' access=readonly;
3 
4/* Crée une table temporaire pour la démonstration */
5DATA _null_;
6 file '%sysfunc(pathname(WORK))/my_read_only_library/sample.sas7bdat';
7 put 'This is a sample SAS dataset file.';
8RUN;
9 
10/* Tente de créer une nouvelle table dans la bibliothèque en lecture seule (va échouer) */
11DATA readonly.new_table;
12 x=1;
13RUN;
14 
15/* Désaffecte la bibliothèque */
16LIBNAME readonly clear;
17 
3 Bloc de code
Accès direct au fichier
Explication :
Bien que l'utilisation d'un libref soit recommandée, cet exemple montre comment accéder à une table SAS en spécifiant directement son chemin d'accès complet et son nom de fichier entre guillemets. Cela fonctionne pour de nombreux éléments du langage SAS, mais n'offre pas la flexibilité et les avantages de la gestion par libref, notamment pour les options de moteur et la modification simple du chemin d'accès.
Copié !
1/* Crée un dossier temporaire pour l'exemple */
2/* Créons une table SAS temporaire directement dans un chemin */
3DATA '%sysfunc(pathname(WORK))/my_direct_access_data.sas7bdat';
4 INPUT val;
5 DATALINES;
610
720
830
9;
10RUN;
11 
12/* Accède à la table SAS directement par son chemin complet */
13PROC PRINT DATA='%sysfunc(pathname(WORK))/my_direct_access_data.sas7bdat';
14 title 'Accès direct à la table';
15RUN;
16 
17/* Note: Le fichier reste sur le disque après la session à moins d'être supprimé explicitement */
18 
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.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved


Documentation liée : Accès aux données

Sujet / Mot-cléLien vers la ressource
DOC FedSQL fr/sampleCode/FEDSQLD493
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI88E2
DOC Bibliothèques SAS par Défaut fr/sampleCode/BIBLIOB755
DOC Fonctionnement des Moteurs avec les Fichiers fr/sampleCode/FONCTI81D4
DOC Caractéristiques des moteurs SAS fr/sampleCode/CARACTABC0
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI6352
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'instruction LIBNAME est bien plus qu'une simple déclaration de chemin ; c'est le contrat qui définit comment SAS doit interagir avec votre stockage physique. Elle établit un pont entre le monde extérieur (Windows, Linux, Cloud) et votre session SAS. »