SAS:表名太多的字符

时间:2014-09-19 12:38:44

标签: sas

SAS对表名和列名具有32个字符的限制。我有一个场景,我想从表A中选择并与表B连接(其中表B的名称大于32个字符)。如果我尝试在PROC SQL中编写它,我会收到一条错误消息,表示表B的名称超过32个字符。

任何人都知道如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

假设这与非SAS DBMS(如SQL Server)一起使用,您应该使用passthrough SQL来处理select,因为这与RDBMS的语法一起使用并且没有32个字符的限制

IE:

proc sql;
  connect to oledb (... init string ... );
  create table work.mydata as 
    select * from connection to oledb (
      ... sql server or whatever syntax ...
    );
quit;

您还可以要求DBA构建一个具有<长32个字符。

答案 1 :(得分:0)

如果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;

答案 2 :(得分:-1)

SAS无法使用"表"那个长名。您必须重命名该文件。