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;
我有以下代码:
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;