带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码(一)-阿里云开发者社区

开发者社区> 人民邮电出版社> 正文

带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码(一)

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码
+关注继续查看

系统字母数字返回码

SAS 字母数字返回码在这里不是必需的,因为它们仅反映&SYSERR 的数字值。 

此处虽然进行了介绍,但不建议使用这类返回码。

&SYSWARNINGTEXT

自动宏变量 &SYSWARNINGTEXT包括当前 SAS会话生成的或出现在 SAS日志中的最近一个警告信息的文本。警告信息并不代表警告实际发生了。例如,用

%PUT  程序指令打印“WARNING:   FAKE”将导致  &SYSWARNINGTEXT  改变为

FAKE,如以下输出信息所示。

%putBEFORE:&syswarningtextLENGTH:%length(&syswarningtext);BEFORE:            LENGTH:0

%putWARNING:FAKE;WARNING:FAKE

%putAFTER:&syswarningtext     LENGTH:%length(&syswarningtext);

AFTER:FAKE     LENGTH:4

 

以下输出内容显示的是引用了未初始化的宏变量 &NOTAREALMACRO时发出的警告。

%putBEFORE:&syswarningtextLENGTH:%length(&syswarningtext);BEFORE:            LENGTH:0

%put&notarealmacro;

WARNING:ApparentsymbolicreferenceNOTAREALMACROnotresolved.&notarealmacro

%putAFTER:&syswarningtext     LENGTH:%length(&syswarningtext);AFTER:ApparentsymbolicreferenceNOTAREALMACROnotresolved.

LENGTH:55

 

由于 &SYSWARNINGTEXT是只读的,只能在新的警告发出之后重置,因此,它不能手动重置为丢失。尽管该代码仅仅是在 SAS日志中产生一个警告,但该代码的运行依然代表着一个故障,这是因为预期的变量没有显示出来。出于这个原因,在这种情况下,尽管丢失的宏变量在SAS日志中显示为WARNING,但它依然是一个错误,是“人为的错误

由于 &SYSWARNINGTEXT不能被重置,该宏变量在SAS会话结束之前将一直保留在后续程序中。例如,运行上述代码之后,在同一SAS会话中将会继续独立运行以下有效的 DATA步骤,这将会生成非常复杂的输出信息 :

%letsyscc=0;

datafinal;

lengthchar$10;run;

 

NOTE:ThedatasetWORK.FINALhas1observationsand1variables.NOTE:DATAstatementused(Totalprocesstime):

realtime             0.03seconds

cputime               0.03seconds

%putSYSCC:&syscc;SYSCC:0

%putSYSWARNINGTEXT:&syswarningtext;

SYSWARNINGTEXT:ApparentsymbolicreferenceNOTAREALMACROnotresolved.

尽管将该&SYSCC重置为0,且没有遇到任何警告或运行时错误,但该代码还是会错误地显示在上一个不相关程序中保存下来的&SYSWARNINGTEXT值。

为了克服这一缺点并确保&SYSWARNINGTEXT   仅在恰当的时候使用,代码应该仅在&SYSCC=4以及&SYSCC在程序启动之前重置时再引用&SYSWARNINGTEXT。然而,如以下“&SYSWARNINGTEXT”部分所介绍的一样,由于在某些情况下,&SYSCC>4(表示存在错误)将掩盖一个警告代码,因此,没有程序化的方法能证实&SYSWARNINGTEXT       是当前的、相关的。出于这一原因以及前述的一些缺点,我们并不推荐使用 &SYSWARNINGTEXT。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
找优质的直播软件开发公司不用担心系统架构问题
文章标题中提到的系统架构问题,在直播软件开发过程中也是非常重要的一部分。为什么这么说呢?我们举个简单的例子,一个施工队盖楼肯定先要把整体的框架用钢筋扎好,然后再进行下一步的工作。开发直播软件也是一样,先把整体的架构设计好罗列出来,再把其中的功能挨个添加进去。
895 0
SAS进阶《深入分析SAS》之数据汇总和展现
SAS进阶《深入分析SAS》之数据汇总和展现 1. 通过Print过程制作报表 proc print <data=数据集>; run; 选项: obs=修改观测序号列标签 noobs不显示观测序列号 id语句在输出中取代观测序列 var选择输出的变量 where语句选择输出的观测 总结如下: proc print data=数据集<选项&g
1165 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME
1389 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和END之间的语句 DO WHILE 重复执行直到条件为假则退出循环 DO UNTIL 重复执行直到条件为真则退出循环 DO OVER 对隐含下标
1240 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) 结构化查询语言(SQL) SAS宏语言 2. 宏触发:% 是一个宏语句或宏函数;&是一个宏变量引用 3. 局部宏变量:一般程序定义的为宏变量。 全局
1666 0
SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程
SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择、探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究提供帮助和服务。 2. 数据挖掘重要的两个类别:有监督分析(SupervisedAnalysis),无监督分析(UnsupervisedAnalysis)。 有监督分析属于目标
1072 0
472
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载