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

How to move a table from SAS to Teradata SQL Assistant?

我想问您如何将 table 从 SAS 移动到 TeradataSQL Assistant。

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

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 中 'call' 这个 table?我尝试使用 SELECT * FROM WORK.EXAMPLE,但它不存在。

感谢您的帮助。

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

libname mylib TERADATA .... ;

或 PROC SQL.

中的 CONNECT 语句
proc sql;
  connect to teradata .... ;

事实上,您甚至可以在连接语句中使用在先前创建的 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;

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