Publié le :
Administration CREATION_INTERNE

tableInfo Action

Ce code est également disponible en : English Español
Snippet validé
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é !
1cas;
2/* Créer une table temporaire en mémoire CAS */
3DATA casuser.ma_table_basique;
4 INPUT ID Name $ Value;
5 DATALINES;
61 Alice 100
72 Bob 150
83 Charlie 120
9;
10RUN;
11 
12/* Afficher les informations de la table */
13PROC CAS;
14 TABLE.tableInfo RESULT=r / name="ma_table_basique" caslib="casuser";
15 PRINT r;
16RUN;
Résultat Visuel
Result
2 Bloc de code
DATA STEP / PROC CAS Data
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é !
1cas;
2/* Créer une table dans le caslib "Samples" */
3DATA samples.produits_ventes;
4 INPUT Annee Produit $ Quantite Prix;
5 DATALINES;
62023 A 10 100
72023 B 20 50
82024 A 15 110
92024 C 5 200
10;
11RUN;
12 
13/* Tenter d'obtenir des informations sur une table inexistante, en mode silencieux */
14PROC CAS;
15 TABLE.tableInfo RESULT=r_non_existent / name="table_introuvable" quiet=TRUE;
16 PRINT r_non_existent;
17RUN;
18 
19/* Obtenir des informations sur une table existante dans un caslib spécifique */
20PROC CAS;
21 TABLE.tableInfo RESULT=r_existent / name="produits_ventes" caslib="Samples";
22 PRINT r_existent;
23RUN;
Résultat Visuel
Result
3 Bloc de code
DATA STEP / PROC CAS Data
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é !
1cas;
2/* Créer quelques tables avec des noms contenant des caractères spéciaux */
3DATA casuser.donnees_2023_Q1; ID=1; Val=10; RUN;
4DATA casuser.donnees_2023_Q2; ID=2; Val=20; RUN;
5DATA casuser.donnees_2024_Q1; ID=3; Val=30; RUN;
6DATA 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é */
10PROC CAS;
11 TABLE.tableInfo RESULT=r_wildcard /
12 name="donnees_2023_%"
13 caslib="casuser"
14 wildIgnore=FALSE;
15 PRINT r_wildcard;
16RUN;
Résultat Visuel
Result
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é !
1cas;
2/* Créer une table dont le nom contient un caractère spécial à échapper */
3DATA casuser."resultat_final_%_test";
4 ID=10;
5 Score=95.5;
6RUN;
7 
8/* Tenter de trouver la table en utilisant un joker pour le nom et un caractère d'échappement */
9PROC 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;
16RUN;
17 
18/* Autre exemple : Lister toutes les tables dans casuser */
19PROC CAS;
20 TABLE.tableInfo RESULT=r_all /
21 name="%"
22 caslib="casuser"
23 wildIgnore=FALSE;
24 PRINT r_all;
25RUN;
Résultat Visuel
Result
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


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« 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 »