SAS:表名包含太多字符
SAS的表名和列名限制为32个字符。我有一个场景,我想从表a中选择并与表B连接(其中表B的名称超过32个字符)。如果我尝试在procsql中编写此代码,我会得到一个错误,即表B的名称超过32个字符SAS:表名包含太多字符,sas,Sas,SAS的表名和列名限制为32个字符。我有一个场景,我想从表a中选择并与表B连接(其中表B的名称超过32个字符)。如果我尝试在procsql中编写此代码,我会得到一个错误,即表B的名称超过32个字符 有人知道我是怎么弄到这个的吗?SAS不能处理这么长名称的“表”。您必须重命名该文件。假设该文件适用于非SAS DBMS,如SQL Server,则应使用直通SQL来处理select,因为它适用于RDBMS的语法,并且没有32个字符的限制 即: 您还可以要求DBA构造一个名称长度小于32个字符的视图。如
有人知道我是怎么弄到这个的吗?SAS不能处理这么长名称的“表”。您必须重命名该文件。假设该文件适用于非SAS DBMS,如SQL Server,则应使用直通SQL来处理select,因为它适用于RDBMS的语法,并且没有32个字符的限制 即:
您还可以要求DBA构造一个名称长度小于32个字符的视图。如果SAS表的名称长度超过32个字符是非法的,则必须重命名物理文件。如果您正在读取数据库表,可以使用SQL passthrough这样做:
proc sql;
connect to odbc(dsn=mydsn user=xxxx pwd=yyy);
select * from connection to odbc
(select * from my_table_with_a_very_Very_Very_Long_name);
disconnect from odbc;
quit;
非常感谢。但是整个SQL不能下推到数据库中:-(必须创建一个SQL来检索表,然后在内存中连接它。
proc sql;
connect to odbc(dsn=mydsn user=xxxx pwd=yyy);
select * from connection to odbc
(select * from my_table_with_a_very_Very_Very_Long_name);
disconnect from odbc;
quit;