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?消息会根据我浏览的字符数而有所不同。这几乎是随机的。我想它会在某个点被切断,根据这种切断,会出现一条奇怪的消息。我确实检查了看不见的字符,谢谢你的询问。我甚至可以通过使用完全相同的文件并在缩进中添加大量空格来复制它,所以我确信我只是在一个工作文件中添加空格。太棒了!工作完美。