我有一个SAS数据集,我需要使用SAS数据集在Teradata中创建一个易失性表。但是,我没有沙箱来存储Teradata服务器上的表。有没有办法可以在没有SQL Sandbox的情况下从SAS数据集创建Teradata易失性表。
答案 0 :(得分:0)
在Teradata中创建易失性表非常简单,只需在libname语句中使用dbmstemp=yes
选项即可。
libname TDWORK teradata connection=global dbmstemp=yes .... ;
data tdwork.test1 ;
set sashelp.class ;
run;
确保在所有LIBNAME和CONNECT语句上使用connection=global
选项,以便与Teradata的所有连接使用相同的会话,以便您可以查看易失性表。保持至少一个libref打开,以便连接保持不变。
然后你也可以使用passthru SQL创建一个易失性表。
proc sql ;
connect to teradata (connection=global .... );
execute (
create volatile table test2 as (
select * from test1
) with data on commit preserve rows
) by teradata;
quit;
或者通过SQL代码引用volatile表。
因此,如果您想从MYDB.MYTABLE
中取出NAME
所有记录,其中TEST1
位于您上传到使用第一个数据生成的易失性表proc sql ;
connect to teradata (connection=global .... );
create table mytest as select * from connection to teradata
( select * from mydb.mytable
where name in (select name from test1)
);
quit;
的名称列表中的所有记录上面的步骤你可以使用这样的代码:
["name":"John", "age":"27"]