是否有允许完成上传的force
功能?
data testlib.testTab
(
dbtype=(
var1 = 'VARCHAR(300)',
var2 = 'VARCHAR(150)',
)
)
;
set testt ;
run ;
这很好用,但很少我可能会收到untranslatable character
错误。上次我有'
只在一次观察中。我不知道为什么所有其他'
上传都没问题,除了这个。我认为它既不是Unicode也不是拉丁语。
有什么方法可以强行上传,跳过那个观察。 。 。管他呢 。 。 。什么,但整个样本都失败了。
可能会将所有值转换为Unicode以确保上传成功
如何准备SAS数据集以确保上传得很好?
答案 0 :(得分:2)
如果要将整个数据集强制转换为拉丁语编码,则应执行以下操作:
data clean ( endoding= "latin1" );
set dirty ( encoding= "asciiany" );
run;
答案 1 :(得分:1)
如果您担心编码不同,可以考虑使用KCVT
功能。从一种编码转换为另一种编码。例如,你可以试试。
data want;
set have;
yourvar = kcvt(yourvar,'utf8','ansi');
run;
您最好确定源数据的编码方式,并确保'from'匹配,因为如果源在该编码中无效,这将无效。
要尝试“跳过”错误,您可以尝试启用BULK_COPY并确保错误限制足够高。有关详细信息,请参阅this doc page。该页面的一个例子:
在以下示例中,SAS停止处理并暂停Fastload 当遇到第十个错误时。
libname mydblib teradata user=terauser pw=XXXXXX ERRLIMIT=10;
data mydblib.trfload(bulkload=yes dbtype=(i='int check (i > 11)') );
do
i=1 to 50000;output;
end;
run;
将ERRLIMIT设置得足够低以警告您重要问题,并且足够高以跳过这样的琐碎问题;并在数据语句中使用bulkload=yes
以确保它使用FASTLOAD。除非你真的想在i> 11上出错,否则请暂停int check
部分内容。