executeの使い方の備忘録。
やりたいこと:
動的に生成したコードを実行したい。
call execute(コード)
でいける。
data _null_;
call execute("data a; a=1; run;");
run;
マクロ変数を投入することもできる。
%let CODE1 = '
proc sql;
create table a (
col1 char 20 label="Columns 1"
,col2 num 8 label="Columns 2" format=8.1
);
quit;
';
data _null_;
call execute(&CODE1.);
run;
execute内でコードを組み立てることもできる。
%let CODE2 = '
col1 char 20 label="Columns 1"
,col2 num 8 label="Columns 2" format=8.1
';
data _null_;
call execute(cats('proc sql; create table a (', &CODE., '); quit;'));
run;