La macro interroge exclusivement la vue système `sashelp.vmacro`, qui contient des métadonnées sur toutes les variables macros existantes dans la session SAS. Aucune autre source de données externe n'est utilisée ni créée.
1 Bloc de code
Logique macro (construction de clause WHERE)
Explication : Ce premier bloc initialise trois variables macro locales : `dsid` (pour l'identifiant du jeu de données), `rc` (pour le code de retour) et `where` (pour la clause de filtrage). Il construit ensuite la clause `WHERE` qui sera utilisée pour interroger la vue `sashelp.vmacro`. Si le paramètre `scope` est fourni, la recherche est limitée à la portée spécifiée, convertie en majuscules. Sinon, la recherche exclut la portée de la macro actuelle (`&sysmacroname`). Enfin, la clause `WHERE` est complétée pour inclure le nom de la variable macro à rechercher (`&mvar`), également converti en majuscules.
Explication : Ce second bloc exécute la logique de vérification. Il utilise la fonction `%sysfunc(open())` pour ouvrir la vue système `sashelp.vmacro` en y appliquant la clause `WHERE` définie précédemment. Si l'ouverture du jeu de données est réussie (c'est-à-dire que `&dsid` n'est pas nul), la macro tente de récupérer un enregistrement à l'aide de `%sysfunc(fetch(&dsid))`. Si un enregistrement est trouvé (indiqué par un code de retour différent de -1), cela signifie que la variable macro existe dans la portée recherchée. Le jeu de données est ensuite fermé avec `%sysfunc(close(&dsid))`. La macro retourne `1` si la variable macro est trouvée et `0` sinon.
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.
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.