我在Linux服务器上有一个表,我想在我的PC(Win)上的SAS EG中为其创建索引。我有一个错误:
错误:由于文件XXX.xxx的编码与会话编码不匹配,或者文件的格式是另一台主机的本机格式,因此无法更新。
如何避免呢? 我的代码:
proc datasets library=mylib;
modify table;
index create names=(field1 field2 field3);
run;
答案 0 :(得分:0)
我认为您正在尝试在与当前EG会话编码不同的数据集上创建索引。
proc options option=encoding;
run;
将列出EG会话使用的编码
proc contents data=mylib.table:
run;
将显示数据集上的编码
如果它们不匹配,则最简单的方法是使用匹配会话的编码创建此数据集的副本,并在该副本上创建索引。
libname mylib '/location';
libname mylib2 '/location2' outencoding='UTF-8'; /* should match session encoding */
proc copy noclone in=mylib out=mylib2;
select table;
run;
如果您需要保留编码以避免信息丢失,则此方法可能无效。在这种情况下,您将必须进行一些配置更改,以使EG以正确的编码调用SAS会话。这可能会有所帮助,但我自己没有这样做:
http://support.sas.com/kb/51/586.html
由于您只是在因操作系统不同而处理问题,因此我认为:
libname mylib '/location';
libname mylib2 '/location2`;
proc copy noclone in=mylib out=mylib2;
select table;
run;
之后
proc datasets library=mylib2;
modify table;
index create names=(field1 field2 field3);
run;