如何将表从SAS移动到Teradata SQL Assistant?

时间:2019-10-24 18:53:47

标签: sas teradata

我想问你如何将表从SAS移动到TeradataSQL Assistant。

我在SAS中所做的就是定义一个libname,然后创建要在Teradata中移动的表。

libname NAME "/path"

proc sql;
create table WORK.EXAMPLE as(
select *
from DATASET
);
quit;

但是,我不知道是否需要以这种方式将SAS连接到Teradata:

libname NAME teradata USER=tduser PASSWORD=tdpasswd SERVER=TDServ ; 

proc sql;
   connect to teradata (
tdpid=“” user=“” password=“”);
create table WORK.EXAMPLE as 
select * from connection to teradata
(select * from DATASET
); quit;

我的问题是:

  1. 在第二个libname中,我应该在哪里考虑路径?
  2. 我应该考虑上面的哪一个代码,为什么?
  3. 如何在Teradata中“调用”此表?我尝试使用SELECT * FROM WORK.EXAMPLE,但它不存在。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用LIBNAME语句连接到Terdata

libname mylib TERADATA .... ;

或PROC SQL中的CONNECT语句。

proc sql;
  connect to teradata .... ;

实际上,您甚至可以在connect语句中使用先前创建的LIBNAME语句中创建的libref。

libname mylib TERADATA .... ;
proc sql;
  connect using mylib ;

通常,我发现使用PROC APPEND将数据复制到Teradata最简单。

libname td TERADATA ... ;
libname mysas 'path to where my SAS datasets live';
proc append base=td.target_table data=mysas.source_table force;
run;

如果目标表不存在,则SAS将创建它。 (在这种情况下,请小心,因为您可能不希望使用默认方式创建默认变量类型或主索引。)