1
resposta

Variáveis em uma string de output

Olá, estou aplicando os conceitos em minha atividade de trabalho. Não consegui usar as macros %LET para colocar uma data na string de saída do export. Minha ideia é que o código use a data atual para nomear o arquivo sempre que eu rode o projeto sem tem que alterar o dia.

LIBNAME ALURA '/sasdata/receita/ciclo/Israel';

%MACRO EXTRACAO(TABLE, PATH);
PROC EXPORT
    DATA=ALURA.&TABLE
    OUTFILE=&PATH
    DBMS=CSV;
    DELIMITER=';';    
RUN;
%MEND EXTRACAO;

%EXTRACAO(CADASTRO_CLIENTE, '/sasdata/receita/ciclo/Israel/cadastro_cliente_20200520.csv');

Eu tentei de várias formas: cancatenar com CAT, ||, NRSTR, e várias outras formas mas não consegui. Uma das tentativas abaixo.

%LET SUFIX = COMPRESS(TRANWRD(PUT(TODAY(), YYMMDD10.), "-", ""));

%EXTRACAO(CADASTRO_CLIENTE, '/sasdata/receita/ciclo/Israel/cadastro_cliente_'&SUFIX'.csv');

No meu trabalho eu tenho que exportar vários arquivos com o sufixo de yyyymmdd no final do arquivoe e estou tentando automatizar o máximo.

Alguém já fez algo parecido?

1 resposta

Boa tarde,

Um problema que eu vejo é que o formato YYMMDD10. resulta em uma data na forma 2020-05-20, e acredito que os hifens (-) não são aceitos nos nomes das bases SAS. Você poderia compartilhar a mensagem de erro gerada?