L'action `tableInfo` du jeu d'actions `table` permet d'obtenir des métadonnées complètes sur une table chargée en mémoire dans un caslib spécifique. Elle est essentielle pour l'exploration de données, la vérification de l'existence de tables, et la compréhension de leur structure. Les paramètres incluent le nom du caslib (`caslib`), le nom de la table (`name`), un indicateur `quiet` pour gérer les erreurs de tables inexistantes, `wildEscape` pour définir le caractère d'échappement des jokers, et `wildIgnore` pour activer ou désactiver l'interprétation des caractères jokers (% et _).
Analyse des données
Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) ou SASHELP.
1 Bloc de code
DATA STEP / PROC CAS Data
Explication : Cet exemple illustre l'utilisation la plus simple de `table.tableInfo`. Une petite table est créée en mémoire CAS ('casuser.ma_table_basique') à l'aide d'un DATA step, puis l'action `table.tableInfo` est appelée pour afficher ses métadonnées. Le paramètre `name` spécifie la table dont les informations sont demandées, et `caslib` indique le caslib où la table réside.
Copié !
cas;
/* Créer une table temporaire en mémoire CAS */
data casuser.ma_table_basique;
input ID Name $ Value;
datalines;
1 Alice 100
2 Bob 150
3 Charlie 120
;
run;
/* Afficher les informations de la table */
proc cas;
table.tableInfo result=r / name="ma_table_basique" caslib="casuser";
print r;
run;
Explication : Cet exemple montre comment utiliser les options courantes `caslib` et `quiet`. Une table `produits_ventes` est créée dans le caslib 'Samples'. Le premier appel à `table.tableInfo` tente de récupérer des informations sur une table 'table_introuvable' avec `quiet=TRUE`. Cela permet d'éviter une erreur si la table n'existe pas, et l'état de la requête sera 'OK' avec une sévérité indiquant que la table n'a pas été trouvée. Le second appel utilise `caslib="Samples"` pour spécifier le caslib de la table `produits_ventes`.
Copié !
cas;
/* Créer une table dans le caslib "Samples" */
data samples.produits_ventes;
input Annee Produit $ Quantite Prix;
datalines;
2023 A 10 100
2023 B 20 50
2024 A 15 110
2024 C 5 200
;
run;
/* Tenter d'obtenir des informations sur une table inexistante, en mode silencieux */
proc cas;
table.tableInfo result=r_non_existent / name="table_introuvable" quiet=TRUE;
print r_non_existent;
run;
/* Obtenir des informations sur une table existante dans un caslib spécifique */
proc cas;
table.tableInfo result=r_existent / name="produits_ventes" caslib="Samples";
print r_existent;
run;
1
cas;
2
/* Créer une table dans le caslib "Samples" */
3
DATA samples.produits_ventes;
4
INPUT Annee Produit $ Quantite Prix;
5
DATALINES;
6
2023 A 10100
7
2023 B 2050
8
2024 A 15110
9
2024 C 5200
10
;
11
RUN;
12
13
/* Tenter d'obtenir des informations sur une table inexistante, en mode silencieux */
Explication : Cet exemple illustre une utilisation avancée avec les paramètres `wildIgnore` et `wildEscape`. Plusieurs tables sont créées dans 'casuser' pour démontrer la recherche par motif. En définissant `wildIgnore=FALSE`, les caractères '%' et '_' dans le paramètre `name` sont interprétés comme des caractères jokers. L'exemple recherche toutes les tables dont le nom correspond au motif 'donnees_2023_%', affichant les informations pour les tables correspondantes.
Copié !
cas;
/* Créer quelques tables avec des noms contenant des caractères spéciaux */
data casuser.donnees_2023_Q1; ID=1; Val=10; run;
data casuser.donnees_2023_Q2; ID=2; Val=20; run;
data casuser.donnees_2024_Q1; ID=3; Val=30; run;
data casuser.rapport_final; ID=4; Val=40; run;
/* Rechercher toutes les tables dont le nom commence par "donnees_" et contient "2023",
en utilisant le caractère joker '%' et en désactivant wildIgnore pour qu'il soit interprété */
proc cas;
table.tableInfo result=r_wildcard /
name="donnees_2023_%"
caslib="casuser"
wildIgnore=FALSE;
print r_wildcard;
run;
1
cas;
2
/* Créer quelques tables avec des noms contenant des caractères spéciaux */
3
DATA casuser.donnees_2023_Q1; ID=1; Val=10; RUN;
4
DATA casuser.donnees_2023_Q2; ID=2; Val=20; RUN;
5
DATA casuser.donnees_2024_Q1; ID=3; Val=30; RUN;
6
DATA casuser.rapport_final; ID=4; Val=40; RUN;
7
8
/* Rechercher toutes les tables dont le nom commence par "donnees_" et contient "2023",
9
en utilisant le caractère joker '%' et en désactivant wildIgnore pour qu'il soit interprété */
10
PROC CAS;
11
TABLE.tableInfo RESULT=r_wildcard /
12
name="donnees_2023_%"
13
caslib="casuser"
14
wildIgnore=FALSE;
15
PRINT r_wildcard;
16
RUN;
Résultat Visuel
4 Bloc de code
DATA STEP / PROC CAS Data
Explication : Cet exemple met en évidence l'utilisation de `wildEscape` en combinaison avec `wildIgnore=FALSE`. Une table est créée avec un '%' dans son nom, qui serait normalement interprété comme un joker. En utilisant `wildEscape="\\"` (double backslash car le backslash est lui-même un caractère d'échappement dans les chaînes SAS) et `name="resultat_final_\%_test"`, le '%' est traité comme un caractère littéral. Le second bloc montre comment lister toutes les tables d'un caslib en utilisant '%' comme joker lorsque `wildIgnore=FALSE`.
Copié !
cas;
/* Créer une table dont le nom contient un caractère spécial à échapper */
data casuser."resultat_final_%_test";
ID=10;
Score=95.5;
run;
/* Tenter de trouver la table en utilisant un joker pour le nom et un caractère d'échappement */
proc cas;
table.tableInfo result=r_escape /
name="resultat_final_\%_test" /* Cherche le '%' littéral */
caslib="casuser"
wildIgnore=FALSE /* Active l'interprétation des jokers */
wildEscape="\\"; /* Indique que '\' est le caractère d'échappement */
print r_escape;
run;
/* Autre exemple : Lister toutes les tables dans casuser */
proc cas;
table.tableInfo result=r_all /
name="%"
caslib="casuser"
wildIgnore=FALSE;
print r_all;
run;
1
cas;
2
/* Créer une table dont le nom contient un caractère spécial à échapper */
3
DATA casuser."resultat_final_%_test";
4
ID=10;
5
Score=95.5;
6
RUN;
7
8
/* Tenter de trouver la table en utilisant un joker pour le nom et un caractère d'échappement */
9
PROC CAS;
10
TABLE.tableInfo RESULT=r_escape /
11
name="resultat_final_\%_test"/* Cherche le '%' littéral */
12
caslib="casuser"
13
wildIgnore=FALSE /* Active l'interprétation des jokers */
14
wildEscape="\\"; /* Indique que '\' est le caractère d'échappement */
15
PRINT r_escape;
16
RUN;
17
18
/* Autre exemple : Lister toutes les tables dans casuser */
19
PROC CAS;
20
TABLE.tableInfo RESULT=r_all /
21
name="%"
22
caslib="casuser"
23
wildIgnore=FALSE;
24
PRINT r_all;
25
RUN;
Résultat Visuel
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.
« Ne considérez pas tableInfo comme une simple commande d'affichage. Stockez son résultat dans un dictionnaire (objet SAS) pour conditionner dynamiquement la suite de vos traitements en fonction de la taille ou de la date de modification de la table »
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.