A macro abaixo, adaptação do próprio site da empresa SAS, verifica a existência de um arquivo antes de começar a fazer a tarefa demandada. No exemplo, a função exist() é utilizada e o parâmetro recebido é o nome do arquivo – com a libname, obviamente. A única tarefa do exemplo é exibir o dataset, qualquer outra tarefa que você queira fazer é só substituir o trecho do proc print:
%macro verifica_dataset(nome_dataset);
%if %sysfunc(exist(&nome_dataset)) %then %do;
proc print data = &nome_dataset;
run;
%end;
%else %do;
data _null_;
file print;
put # 3 @ 10 "Dataset &nome_dataset. não existe";
run;
%end;
%mend;
Testamos primeiro um exemplo com um dataset que existe:
/*Cria tabela exemplo*/ data compras; input dt_compra $ vlr_compras; cards; 20151102 1000 20151010 500 20161201 650 20140130 900 ; run; /*verifica se tabela compras existe*/ %verifica_dataset(compras);
Agora uma tabela que não existe:
%verifica_dataset(compras_v293834)