sas proc参数大小限制

sas proc parameter size limit

我有以下代码:

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;

它工作正常。但我不希望每行有多个字段。出于阅读和编辑的原因,我希望每行一个字段。但是当我这样做时,它失败了。这是缩进得很好的代码——相同的非白色-space字符,但它不起作用:

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 个。现在,我知道我可以去掉白色的 space,或者使用制表符而不是 spaces——在这种情况下,因为我就在边缘。

但是在一般情况下,proc 的参数中可以包含的字符数是否有限制?是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;