BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
EduardoQuiroz
Obsidian | Level 7

Hola , estoy en busqueda de como nombrar una tabla , con base en una variable macro, algo asi como el sig ejemplo


libname control '/adm_control';


DATA control.&SYSDATE9;
SET SDO_PLAN2;
RUN;

 

al correr esto deberia guardarme una tabla en el libname con la fecha de hoy(18MAR2022), esto no se ejecuta , sera posible crear algo asi?, y asi mismo crear una consulta  basica que responda  a la misma macro 

algo asi

 

PROC SQL;
Create table CTA_MES as
select *

from Control.&SYSDATE9
QUIT;

 

Resultado : crea una tabla llamada CTA_MES  con todos los campos de la tabla guardada en Control.(18mar2022).

 

Gracias y saludos

1 ACCEPTED SOLUTION

Accepted Solutions
guiramos
Obsidian | Level 7
El problema es que la variable macro coloca un nombre de archivo inválido
por comenzar con1, Los nombres de archivos y variables no pueden comenzar
con caracteres numéricos.

Saludos

View solution in original post

4 REPLIES 4
PaigeMiller
Diamond | Level 26

cuando usa una variable de macro y luego ejecuta el código, SAS reemplaza la variable de macro con su valor.

 

DATA control.&SYSDATE9;
    SET SDO_PLAN2;
RUN;

 

esto es reemplazado por

 

DATA control.18MAR2022;
    SET SDO_PLAN2;
RUN;

que no es un código SAS de trabajo legal válido. ¿Puedes ver por qué? ¿Cómo arreglaría el segundo bloque de código para que funcione?

 

 

 

 

--
Paige Miller
guiramos
Obsidian | Level 7
El problema es que la variable macro coloca un nombre de archivo inválido
por comenzar con1, Los nombres de archivos y variables no pueden comenzar
con caracteres numéricos.

Saludos
EduardoQuiroz
Obsidian | Level 7
Gracias a tu Comentario logre hacerlo creando una macro simple asignando un nombre , despues de esto concatene el nombre y la fecha y lo logre, se creo la tabla con un nombre que para mi es funcional

%LET SDO=SDO;

DATA control.&SDO.&SYSDATE;
SET SDO_PLAN2;
RUN;



Gracias
PaigeMiller
Diamond | Level 26

Simpler:

 

DATA control.SDO&SYSDATE;
SET SDO_PLAN2;
RUN;

or possibly better

 

DATA control._&SYSDATE;
SET SDO_PLAN2;
RUN;
--
Paige Miller

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Discussion stats
  • 4 replies
  • 1418 views
  • 10 likes
  • 3 in conversation