我正在写sas脚本,它将批量工作。 SASApp会话的编码是UTF8,我的所有表(在Oracle数据库和SAS数据集中)都具有UTF8编码。但我有一个编译的宏只能使用WCYRILLIC编码(如果我使用UTF8作为会话编码,它会崩溃,错误)。这个宏不适用于我的表,它执行一些辅助操作。
问题是:如何在调用宏之前动态地将会话编码从UTF8更改为WCYRILLIC,并在执行宏之后将其更改回UTF8。
答案 0 :(得分:1)
我认为没有办法改变session-level encoding option。文档页面表明它只能在首次启动会话时设置:
有效:配置文件,SAS调用
我认为您可以做的最好是覆盖有问题宏中每个与编码相关的语句的会话编码选项 - 即在每个encoding=WCYRRLIC
,file
上指定infile
,该宏生成的filename
,%include
和ods
语句。
或者,如果您有SAS / CONNECT,您可以编写签名到调用选项中指定encoding=WCYRILLIC
的另一个会话的代码,只是为了运行您的宏,将输出转储回父会话。