sas proc参数大小限制

sas proc参数大小限制,sas,proc,Sas,Proc,我有以下代码: proc export data=mylib.datain ( drop= first_name mi last_name suffix addr_1 addr_2 city birth_dt_agg_ind sec_birth_dt_agg_act sec_first_name_agg_act sec_mi_ag

我有以下代码:

proc export
    data=mylib.datain (
        drop=
            first_name mi last_name suffix
            addr_1 addr_2 city
            birth_dt_agg_ind
            sec_birth_dt_agg_act
            sec_first_name_agg_act
            sec_mi_agg_act
            sec_last_name_agg_act
            sec_suffix_agg_act
            ibx_nm_gender_1st_individual_pre
            ibx_nm_gender_2nd_individual_pre
        obs=2
    )
    outfile=stdout
    dbms=csv
;

run;
它很好用。但我不希望每行有多个字段。出于阅读和编辑的原因,我希望每行有一个字段。但当我这么做的时候,它失败了。下面是缩进得很好的代码——相同的非空白字符,但不起作用:

proc export
    data=mylib.datain (
        drop=
            first_name 
            mi 
            last_name suffix
            addr_1 
            addr_2 
            city
            birth_dt_agg_ind
            sec_birth_dt_agg_act
            sec_first_name_agg_act
            sec_mi_agg_act
            sec_last_name_agg_act
            sec_suffix_agg_act
            ibx_nm_gender_1st_individual_pre
            ibx_nm_gender_2nd_individual_pre
        obs=2
    )
    outfile=stdout
    dbms=csv
;

run;
我怀疑这是因为此时“drop=”子句中有超过256个字符。现在,我知道我可以去掉空白,或者用制表符代替空格——在这种情况下,因为我就在边缘


但在一般情况下,进程的参数中可以包含的字符数有限制吗?是256吗?有办法解决这个问题吗?我尝试使用两个不同的“drop=”参数,但没有效果。

数据集选项的长度没有限制,例如
drop=
。但是
PROC EXPORT
基本上是SAS编写的SCL程序。可能是与此相关的接口导致了问题

创建一个视图并告诉PROC EXPORT使用该视图

data myview / view=myview ;
  set mylib.datain
    (
      drop=
        first_name
        mi
        last_name suffix
        addr_1
        addr_2
        city
        birth_dt_agg_ind
        sec_birth_dt_agg_act
        sec_first_name_agg_act
        sec_mi_agg_act
        sec_last_name_agg_act
        sec_suffix_agg_act
        ibx_nm_gender_1st_individual_pre
        ibx_nm_gender_2nd_individual_pre
      obs=2
    )
  ;
run;

proc export
  data=myview
  outfile=stdout
  dbms=csv
;
run;

很奇怪。我从来没有遇到过参数长度的问题。您看到了什么错误消息?您使用的是什么版本的SAS?您是否通过%include或batch运行此代码?是否确定在重新格式化文本时没有引入不可见字符,如“A0”X或“09”X?消息会根据我浏览的字符数而有所不同。这几乎是随机的。我想它会在某个点被切断,根据这种切断,会出现一条奇怪的消息。我确实检查了看不见的字符,谢谢你的询问。我甚至可以通过使用完全相同的文件并在缩进中添加大量空格来复制它,所以我确信我只是在一个工作文件中添加空格。太棒了!工作完美。