Sas Teradata准备对象错误

Sas Teradata准备对象错误,sas,teradata,mod-auth-passthrough,Sas,Teradata,Mod Auth Passthrough,我正在尝试访问SAS表,该表是我在工作空间中的Teradata Passthrough之外创建的,用于查询运行。现在它给了我一个错误。我的问题是如何访问passthrough中不在teradata中的表 proc sql; connect to teradata (user="&user_id.@LDAP" password="&TERADATA_PASS" server='ABC' connection=global database="GTY"); sele

我正在尝试访问SAS表,该表是我在工作空间中的Teradata Passthrough之外创建的,用于查询运行。现在它给了我一个错误。我的问题是如何访问passthrough中不在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中,而是在工作目录中制作的。

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


通常,在这种情况下,我会首先尝试通过
libname
access执行整个过程,如果失败(因为执行时间或只需要passthrough元素,如存储过程),那么我会使用
libname
access将表加载到RDBMS(此处为Teradata)中的表中。然后它就可以在passthrough会话中使用(作为本地Teradata表)。

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


通常,在这种情况下,我会首先尝试通过
libname
access执行整个过程,如果失败(因为执行时间或只需要passthrough元素,如存储过程),那么我会使用
libname
access将表加载到RDBMS(此处为Teradata)中的表中。然后它就可以在passthrough会话中使用(作为本地Teradata表)。

我也这么认为。Libname需要一个永恒的过程来解决,因此我想我会通过这个过程。然而,在我看来,这似乎有点前后矛盾。由于working direcory中的“宏变量”在传递中可用,但“表”不可用。宏变量只是文本弹出项,因此当传递转换为teradata时,它解析宏变量的值。数据集是他们自己的东西;libname访问方法旨在允许您访问它们。通过libname访问简单地复制一个表不应该比任何其他方法慢;libname速度较慢的唯一原因是,它要求您在执行某些操作之前从teradata下载整个表(在上传表的情况下,这当然是不相关的)。Libname需要一个永恒的过程来解决,因此我想我会通过这个过程。然而,在我看来,这似乎有点前后矛盾。由于working direcory中的“宏变量”在传递中可用,但“表”不可用。宏变量只是文本弹出项,因此当传递转换为teradata时,它解析宏变量的值。数据集是他们自己的东西;libname访问方法旨在允许您访问它们。通过libname访问简单地复制一个表不应该比任何其他方法慢;libname速度较慢的唯一原因是,它要求您在执行某项操作之前从teradata下载整个表(在上传表的情况下,这当然是不相关的)。