Hi SASKiwi, Thanks again for your valuable suggestions. Below is the code I have modified to do the following: If Row_count gt 0 it should extract a table and send a email otherwise wait for 10min and check again. If Row_count >0(which is true in my case) a table should be extracted from sql. But when I run the below code the table is extracted with or without meeting the condition(Row_count gt 0) and the code does not stop running. What am I doing wrong? %macro Loop; %let Row_count = 0; %let yesterday = '2015-06-16'; %let today = %sysfunc(today(),yymmdd10.); %let Loop_Count = 0; %let Wait_Minutes = 10; %do %until (&Row_count gt 0); %let Time_Now = %sysfunc(datetime(), datetime20.); proc sql exec; connect to odbc (&connectA); SELECT count(*) into : Row_count FROM connection to odbc ( SELECT * FROM [xxxx].[xxx].[xxxx] A WITH (NOLOCK) WHERE Category = 'xxxx' AND ProcessName = 'xxxxx' AND DBName = 'xxxxx' AND ObjectName = 'xxxxxxx' AND Phase = 'SUCCESS' AND StartDate = &yesterday ); disconnect from odbc; quit; %if &Wait_Minutes gt 0 %then %let slept = %sysfunc(sleep(&Wait_Minutes, 60)); %end; proc sql exec; connect to odbc (&connectA); create table data as select * from connection to odbc ( SELECT * FROM [xxxxxx].[xxxx].[exxxxxx] A WITH (NOLOCK) ); disconnect from odbc; quit; %mend Loop; %loop;
... View more