各位大哥,你们好!小女子有一个关于SAS多进程的问题:
我有一个主控进程,程序如下:
%macro main();
%do JOB_CD=1 %to 3;
%let JOB_CD=&JOB_CD.;
%let LOAD_DATE=18420;/*2010-06-07*/
%let PROG_NAME=%str(create_test_data.sas);
%let LOG_FILE=%str(log&JOB_CD..log);
DATA _NULL_;
STR1="'C:\Program Files\SAS\SAS 9.1\SAS.EXE'";
STR3=" -SYSIN 'F:\etl\create_test_data.sas'";
STR4=" -LOG 'F:\etl\log\log&JOB_CD..log'";
STR5=" -SYSPARM 'JOB_CD=&JOB_CD LOAD_DATE=&LOAD_DATE. PROG_NAME=&PROG_NAME. LOG_FILE=&LOG_FILE. '";
STR6=" -NOTERMINAL -NOSPLASH -NOSYNTAXCHECK";
CALL SYMPUT('X_Command', STR1||STR3||STR4||STR5||STR6);
RUN;
DATA _NULL_;
CALL SYSTEM("&X_Command");
Rc=SLEEP(1, 1);
RUN;
%end;
%mend main;
%main;
我本意是想同时启动三个同样的子进程create_test_data.sas,但是运行上面的程序后,create_test_data.sas总是串行运行,请问各位大哥有什么办法吗? 其中create_test_data.sas只是一个测试数据程序,代码如下:
data a;
do i=1 to 30000000;
output;
end;
run;