如何在 255 处停止截断字符串

How to stop truncation of strings at 255

我在将长字符串变量从 SAS 导出到 SPSS 时遇到问题。

DATA testString;
INPUT testString $ 300.;
testLength=LENGTH(testString);
DATALINES;
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
;
RUN;

PROC EXPORT
DATA=WORK.teststring
FILE="H:/TestSPSStrucation.sav"
DBMS=SAV
REPLACE;

当我打开导出的 SPSS 文件时,字符串被截断为 255 个字符。我尝试了不同的方法,例如将 dbms 更改为 SPSS 或混合格式。没有太多结果。

生成的 SPSS 文件,testString 变量是字符串类型,宽度为 765。向变量添加字符以获得比 255 个字符更宽的字符串没有问题。

我认为您可以通过扩展字符变量填充 (CVP) 引擎来解决此问题。尝试使用选项 CVPBYTES = #bytes you need?

的 libname 语句

从 SAS 9.4 开始,根据 documentation,SAS 在导出到 SPSS 时支持最多 256 个字节(字符)的字符变量。我的猜测是,这是 SAS 开发 SPSS 导出引擎时最新的旧 SPSS 版本的限制。

SPSS 能够直接从 SAS 数据集(.sas7bdat)导入,这可能是解决这个问题的更好方法。

SPSS 支持最长 32K 的字符串变量已经有一段时间了。您可以尝试使用 SPSS 程序读取 SAS 文件目录。文件 > 打开,或者在语法上,GET TRANSLATE。