1

我正在尝试访问我在工作空间中在 Teradata Passthrough 之外创建的 SAS 表以进行查询运行。现在它给了我一个错误。我的问题是如何在直通内访问不在 teradata中的表

proc sql;
    connect to teradata (user="&user_id.@LDAP" password="&TERADATA_PASS" server='ABC' 
connection=global database="GTY");
    select * from connection to teradata(
    select * from mm)
;
quit;

mm不在 teradata 中,而是在工作目录中。

4

1 回答 1

1

您可能无法直接通过直通方式访问它。您要么需要使用libname对 Teradata 的访问权限来运行查询,要么需要将所需信息放入可包含在直通查询中的宏变量或文本文件中。在直通中,您只能访问可以在交互式 Teradata 会话中访问的内容 - 因此,除非您将 SAS 定义为 ODBC 或 Teradata 的此类提供程序,否则这是不行的。

通常我在这种情况下所做的是首先尝试通过libname访问执行整个过程,如果失败(因为执行时间或因为需要像存储过程这样的仅传递元素)然后我使用libname访问来加载表到 RDBMS 内的表(此处为 Teradata)。然后它可以在您的直通会话中使用(作为本机 Teradata 表)。

于 2013-11-21T21:58:36.140 回答