El código opera sobre el catálogo `work.sasmacr` de la sesión SAS actual, que contiene las macros compiladas. Crea un conjunto de datos temporal `_listmac` en la biblioteca `WORK` para almacenar la lista de macros antes de filtrarlas con `PROC SQL`. No se leen ni se requieren datos externos para su funcionamiento.
1 Bloque de código
MACRO DEFINITION
Explicación : Este bloque define la macro `delmac` con un parámetro `like`. Inicializa variables locales, captura el estado actual de la opción `notes` de SAS y la desactiva durante la ejecución de la macro. También realiza una validación del parámetro `like` y lo preprocesa para la búsqueda SQL, convirtiéndolo a mayúsculas y reemplazando los ':' por '%'.
Explicación : Este bloque `PROC SQL` selecciona los nombres de las macros del conjunto de datos temporal `_listmac` que coinciden con el patrón proporcionado por el parámetro `like`. Los nombres de las macros encontradas se concatenan en la variable macro `delmac`, separados por espacios. La opción `escape '\'` permite usar el carácter '\' para escapar los comodines SQL ('_').
¡Copiado!
proc sql noprint;
select name into :delmac separated by " " from _listmac
where name like "&like" escape '\';
quit;
1
PROC SQL noprint;
2
select name into :delmac separated BY" " from _listmac
3
where name like "&like" escape '\';
4
QUIT;
4 Bloque de código
PROC DATASETS
Explicación : Este bloque utiliza `PROC DATASETS` para eliminar el conjunto de datos temporal `_listmac`, que ya no es necesario después de la extracción de los nombres de las macros.
¡Copiado!
proc datasets nolist;
delete _listmac;
quit;
1
2
PROC DATASETS nolist;
3
delete _listmac;
4
5
QUIT;
6
5 Bloque de código
PROC CATALOG
Explicación : Este bloque condicional verifica si la variable macro `delmac` contiene nombres de macros (es decir, si se encontraron macros que coinciden con el patrón). Si es así, se utiliza `PROC CATALOG` para eliminar esas macros del catálogo `work.sasmacr`.
Explicación : Este bloque maneja la lógica de salida de la macro. Incluye una etiqueta `%exit:` para el manejo de errores (si no se proporciona ningún patrón 'like') y una etiqueta `%skip:` para el final normal de la ejecución. Finalmente, restaura la opción SAS `notes` a su valor original, asegurando que la macro no afecte de forma duradera el entorno SAS.
%exit: %put &err: (delmac) No "like" string supplied;
3
%skip:
4
5
options &savopts;
6
7
%mend delmac;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : This is public domain software. No guarantee as to suitability or accuracy is given or implied. User uses this code entirely at their own risk.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.