使用sas数据集中的值在数据库中创建临时表

使用sas数据集中的值在数据库中创建临时表,sas,temp-tables,Sas,Temp Tables,有谁能帮助我使用SAS数据集的值在数据库中创建临时表的语法吗?我想使用这个临时表来连接数据库中的其他表 libname X odbc dsn=aaabbb uid=abcd pwd=efgh quote_char=''; data X.vishtest; set test.noosbtest; run; 我想将“vishtest”创建为带有SAS数据集“test.noosbtest”中的值的临时表 我在前面的尝试中创建了一个临时表,如下所示,并删除了其中的值,但接下来我无法将sa

有谁能帮助我使用SAS数据集的值在数据库中创建临时表的语法吗?我想使用这个临时表来连接数据库中的其他表

libname X odbc dsn=aaabbb uid=abcd pwd=efgh quote_char=''; 

data X.vishtest;   
set test.noosbtest; 
run; 
我想将“vishtest”创建为带有SAS数据集“test.noosbtest”中的值的临时表

我在前面的尝试中创建了一个临时表,如下所示,并删除了其中的值,但接下来我无法将sas数据集的值放入该临时表中:

select * from connection to X(Create temp table vishtest as select var1 from table1 limit 20); 

select * from connection to X(delete from tempdb.vishwatemp a);

必须确保本地sas数据集的列与数据库表的列相同

如果现有数据库表是X.my_table,而本地数据集是mylib.my_数据,则可以尝试以下操作:

proc sql;
    create table X.my_table_empty like X.my_table;
    create table the_data_empty like mylib.the_data;
quit;
proc compare
    data = my_table_empty
    compare = the_data_empty;
run;
如果proc compare返回并告诉您这两个表是相同的,那么您应该能够将数据表加载到temp表中:

proc append
    base = X.my_table_empty
    data = mylib.the_data;
run;
原始答复:

这是从另一个现有表创建临时表vishtest 有大约20行数据,我正在删除temp的内容 表vishtest。在这里之前一切正常…但接下来,我想输入 从我的本地计算机上的SAS数据集将值添加到此临时表 驱动器或lib,这是我无法做到的

如果vishtest包含与sas数据集相同的列,则 可能会为您工作:

proc append
    base = X.vishtest
    data = test.noosbtest;
run;

ODBC libname连接到什么类型的数据库?数据库位于Netezza服务器上。第二组代码如下:select*from connection to XCreate temp table vishtest as select var1 from table1 limit 20;从tempdb.vishwatemp a中选择*从连接到Xdelete;这是从另一个包含20行数据的现有表中创建一个临时表vishtest,我正在删除临时表vishtest的内容。在这里之前,它工作得很好…但是接下来,我想从我本地驱动器或lib上的SAS数据集向这个临时表输入值,这是我无法做到的。据我所知,最简单的事情是删除现有的临时表,然后简单地创建一个新的临时表-这样行吗?我会以proc-sql的形式来做;下降表X.vishwatemp;从test.noosbtest中选择*创建表X.vishwatemp;由于test.noosbtest位于本地驱动器上,因此无法识别指向本地驱动器的“test”libname。因为首先要创建一个临时表,首先我需要指定到netezza的连接参数,然后按照select*from test.noosbtest;不起作用的语句我创建临时表的逻辑是…从netezza上的任何现有表中创建一个临时表,其中包含10条左右的记录…然后删除此新临时表中的内容…下一步是使用位于本地驱动器中的sas数据集中的数据加载此临时表。