mirror of
https://github.com/yabwon/SAS_PACKAGES.git
synced 2026-01-09 07:50:06 +00:00
version 2.0
2020-05-29, bug fix for the WORK and USER library
This commit is contained in:
@@ -17,15 +17,45 @@
|
|||||||
/*** HELP END ***/
|
/*** HELP END ***/
|
||||||
|
|
||||||
/* inner macro */
|
/* inner macro */
|
||||||
%MACRO dsSQL_Inner() / SECURE;
|
%MACRO dsSQL_Inner() / secure;
|
||||||
%local query;
|
%local query tempfile1 tempfile2;
|
||||||
%let query = %superq(query_arg);
|
%let query = %superq(query_arg);
|
||||||
%let query = %sysfunc(dequote(&query));
|
%let query = %sysfunc(dequote(&query));
|
||||||
|
|
||||||
%let viewname = dsSQL.dsSQLtmpview&UNIQUE_INDEX_2.;
|
%let viewname = dsSQL.dsSQLtmpview&UNIQUE_INDEX_2.;
|
||||||
proc sql;
|
|
||||||
create view &viewname as
|
%let tempfile1 = A%sysfunc(datetime(), hex7.);
|
||||||
&query
|
%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;
|
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;
|
%MEND dsSQL_Inner;
|
||||||
|
|||||||
10
SQLinDS/999_test/test1.sas
Normal file
10
SQLinDS/999_test/test1.sas
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
proc sort data=sashelp.class out=test1;
|
||||||
|
by age name;
|
||||||
|
run;
|
||||||
|
|
||||||
|
data class;
|
||||||
|
set %SQL(select * from sashelp.class order by age, name);
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc compare base = test1 compare = class;
|
||||||
|
run;
|
||||||
29
SQLinDS/999_test/test2.sas
Normal file
29
SQLinDS/999_test/test2.sas
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
data class_work;
|
||||||
|
set sashelp.class;
|
||||||
|
run;
|
||||||
|
|
||||||
|
data test_work;
|
||||||
|
set %sql(select * from class_work);
|
||||||
|
run;
|
||||||
|
|
||||||
|
options dlcreatedir;
|
||||||
|
libname user "%sysfunc(pathname(work))/user";
|
||||||
|
%put *%sysfunc(pathname(user))*;
|
||||||
|
|
||||||
|
data cars_user cars_user2;
|
||||||
|
set sashelp.cars;
|
||||||
|
run;
|
||||||
|
|
||||||
|
data test_user;
|
||||||
|
set %sql(select * from cars_user);
|
||||||
|
run;
|
||||||
|
|
||||||
|
data test_user2;
|
||||||
|
set %sql(select * from user.cars_user2);
|
||||||
|
run;
|
||||||
|
|
||||||
|
libname user clear;
|
||||||
|
%put *%sysfunc(pathname(user))*;
|
||||||
|
|
||||||
|
proc datasets lib = work;
|
||||||
|
run;
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
Type: Package :/*required, not null, constant value*/
|
Type: Package :/*required, not null, constant value*/
|
||||||
Package: SQLinDS :/*required, not null, up to 24 characters, naming restrictions like for a dataset name! */
|
Package: SQLinDS :/*required, not null, up to 24 characters, naming restrictions like for a dataset name! */
|
||||||
Title: SQL queries in Data Step :/*required, not null*/
|
Title: SQL queries in Data Step :/*required, not null*/
|
||||||
Version: 1.0 :/*required, not null*/
|
Version: 2.0 :/*required, not null*/
|
||||||
Author: Mike Rhoads (RhoadsM1@Westat.com) :/*required, not null*/
|
Author: Mike Rhoads (RhoadsM1@Westat.com) :/*required, not null*/
|
||||||
Maintainer: Bartosz Jablonski (yabwon@gmail.com) :/*required, not null*/
|
Maintainer: Bartosz Jablonski (yabwon@gmail.com) :/*required, not null*/
|
||||||
License: MIT :/*required, not null, values: MIT, GPL2, BSD, etc.*/
|
License: MIT :/*required, not null, values: MIT, GPL2, BSD, etc.*/
|
||||||
|
|||||||
BIN
sqlinds.zip
BIN
sqlinds.zip
Binary file not shown.
Reference in New Issue
Block a user