Is it possible to create multiple volatile teradata tables in the same SAS session?
Eg. Create a volatile table called vol1 with 10 records in it.
Then create a 2nd volatile table called vol2 that will read the records from vol1.
I'm a bit late to the party with this reply, but in case someone else finds this in the future...
libname x teradata server=&server authdomain=&authdomain connection=global dbmstemp=yes;
options sastrace=',,,d' sastraceloc=saslog;
data x.vol1;
do x=1 to 10;
output;
end;
run;
data x.vol2;
set x.vol1;
y=x**2;
run;
* explicit passthru ;
proc sql;
connect to teradata(server=&server authdomain=&authdomain connection=global);
execute (
CREATE MULTISET VOLATILE TABLE vol3 AS
(
SELECT x,y,(x**3) as z FROM vol2
) WITH DATA
ON COMMIT PRESERVE ROWS
) by teradata;
execute (COMMIT WORK) by teradata;
quit;
* data returned in indeterminate order ;
title "vol1";
proc print data=x.vol1;
run;
title "vol2";
proc print data=x.vol2;
run;
title "vol3";
proc print data=x.vol3;
run;
proc sql;
title "SQL select";
select * from x.vol3 order by x;
create view foo as select * from x.vol3 order by x;
quit;
title "foo view";
proc print data=foo;
run;
Pay close attention to the trace output in the SAS log.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.