【发布时间】:2020-02-21 03:50:25
【问题描述】:
我想问您如何将表从 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;
我的问题是:
- 在第二个库名中,我应该在哪里考虑路径?
- 我应该考虑上面的哪一个代码,为什么?
- 如何在 Teradata 中“调用”该表?我试过
SELECT * FROM WORK.EXAMPLE,但它不存在。
感谢您的帮助。
【问题讨论】:
-
WORK 是一个临时表,仅在执行期间保持可访问性。要持久化数据集,您需要在第一部分的 CREATE 语句中引用 NAME(您为 lib 命名的名称)而不是 WORK。然后,在您的第二个区域中,您可以在您的库中引用该表,而无需创建额外的临时表。
-
谢谢凯德。如果我理解你所说的,我需要写
proc sql; create table NAME.EXAMPLE as( select * from DATASET ); quit;。但是我怎么能把表移到 Teradata 上呢?我试图写select * from NAME.EXAMPLE,但即使在这种情况下,该表也不存在。我需要在 SAS 中使用connect to Teradata吗? -
运行第一个之后:
PROC SQL; CREATE TABLE LIBNAME.TBL_NAME AS SELECT * FROM DATASET; QUIT;你应该能够简单地执行 'PROC SQL;从 LIBNAME.TBL_NAME 中选择 *; QUIT`,因为您的库应该可以从您的 SAS 工作区中访问...但是,这在很大程度上取决于您的环境设置方式。 -
所以这意味着表已经上传到 Teradata。但是,如果我不使用连接到,我如何将 SAS 连接到 Teradata?这是一个愚蠢的问题,但这些概念对我来说是新的
-
Teradata 的 SQL 助手工具只是一个用于访问您的 Teradata 数据库的实用程序,因此它与您的问题没有任何关系。