首先,肯定的是:字符型变量的类型和长度决定于编译阶段且由其第一次出现时的状态所决定的,即SAS构建PDV时给该变量的长度,之后该长度属性不能再变;数值型变量默认存储长度为8个字节;
使用一下代码做测试:
- data work.test1;
- length city $20;
- length y 5;
- city = 'Paris';
- city2 = trim(city);
- city3="paris";
- x=3; y=4;
- run;
- proc contents data=test1; run;
下面再看看,2个length语句后出现时的情况:
- data work.test1;
- city = 'Paris';
- city2 = trim(city);
- city3="paris";
- x=3;
- y=4;
- length city $20;
- length y 5;
- run;
- proc contents data=test1; run;
可见:
1)对于字符变量,后出现的length对其无效,而数值变量是有效的;当然如果length语句先出现(先出现当然是第一次的状态啦),则其对字符变量和数值变量的作用都有效;
另,NOTE:使用赋值语句给变量赋值时,要特别注意变量的长度可能由初值决定,此时后续的赋值可能出现值长度的删减(Truncated)!
很简单的谈一谈刚才在复习base时的发现,自己第一次发现,哈 大神勿鄙视。



雷达卡



京公网安备 11010802022788号







