BookmarkSubscribeRSS Feed
buckeye
Obsidian | Level 7
Hi all,

I got error msg after running the following code. Can anyone please help debug. Thanks in advance.


%MACRO MYSQL;
PROC SQL;
SELECT COUNT(*) INTO :MYCNT FROM MYTABLE;
%LET MYCNT = &MYCNT;
DATA _NULL_;
IF &MYCNT > 1 THEN %MYPRINT(MYTABLE,'MYTABLE');
RUN;
%MEND MYSQL;

%MACRO MYPRINT(MYDATA,TN);
PROC CONTENTS DATA = &MYDATA POSITION;
TITLE 'Contents of ' &TN;
RUN;
PROC PRINT DATA=&MYDATA (OBS=10) U;
RUN;
%MEND MYPRINT;


%MYSQL;

RUN;
3 REPLIES 3
Paige
Quartz | Level 8
PROC CONTENTS cannot be called from within DATA _NULL_;

Instead of your DATA _NULL_ step, the following should work

%IF &MYCNT > 1 %THEN %MYPRINT(MYTABLE,'MYTABLE');
buckeye
Obsidian | Level 7
from the replied tips, it apperas that adding % takes care of it.

Thank all who replied.
RickM
Fluorite | Level 6
It would be helpful to see the error message as well as the code that came before it in the SAS log.

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

Register now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1023 views
  • 0 likes
  • 3 in conversation