version 2.0

2020-05-29,
bug fix for the WORK and USER library
This commit is contained in:
yabwon
2020-05-29 16:04:03 +02:00
parent af60e31b56
commit 20c021660a
5 changed files with 75 additions and 6 deletions

View File

@@ -17,15 +17,45 @@
/*** HELP END ***/
/* inner macro */
%MACRO dsSQL_Inner() / SECURE;
%local query;
%MACRO dsSQL_Inner() / secure;
%local query tempfile1 tempfile2;
%let query = %superq(query_arg);
%let query = %sysfunc(dequote(&query));
%let viewname = dsSQL.dsSQLtmpview&UNIQUE_INDEX_2.;
proc sql;
create view &viewname as
&query
%let tempfile1 = A%sysfunc(datetime(), hex7.);
%let tempfile2 = B%sysfunc(datetime(), hex7.);
filename &tempfile1. temp;
filename &tempfile2. temp;
proc printto log = &tempfile1.;
run;
/* get the query shape i.e. the executed one */
proc sql feedback noexec;
&query
;
quit;
proc printto;
run;
%put *** executed as ***;
data _null_;
infile &tempfile1. FIRSTOBS = 2; /* <- 2 to ignore header */
file &tempfile2.;
/* create the view name */
if _N_ = 1 then
put " create view &viewname. as ";
input;
put _infile_;
putlog ">" _infile_;
run;
%put *****************;
proc sql;
%include &tempfile2.; /* &query */
;
quit;
filename &tempfile1. clear;
filename &tempfile2. clear;
%MEND dsSQL_Inner;