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

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.2系统数字返回码

&SYSLCKRC

自动宏变量 &SYSLCKRC能显示最近 LOCK程序指令的顺利运行,LOCK序指令以往用于显示数据集未被使用,仅能通过某个程序打开。由于   LOCK   程序指令在 BaseSAS软件中的显示缺乏完整性,且通常会生成无效的结果,因此,LOCK程序指令及&SYSLCKRC应该只能用在SAS/SHARE环境中,但仅用于说明遗留的 SAS代码。互斥和信号量部分会介绍一个替代 LOCK功能的方法。

以下内容显示的是 LOCK程序指令的传统用法——获取PERM.Final数据集上的排他文件锁定,从而使其他程序或用户(理论上)无法获取该数据集 :

dataperm.final;

lengthchar$10;run;

 

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

realtime             0.01seconds

cputime               0.01seconds

 

lockperm.final;

 

NOTE:PERM.FINAL.DATAisnowlockedforexclusiveaccessbyyou.

 

%macrotest;

%if&SYSLCKRC=0%then%do;

procsortdata=perm.final;

bychar;run;

%end;

lockPERM.finalclear;

%mend;

 

%test;

 

NOTE:Therewere1observationsreadfromthedatasetPERM.FINAL.NOTE:ThedatasetPERM.FINALhas1observationsand1variables.NOTE:PROCEDURESORTused(Totalprocesstime):

realtime             0.14seconds

cputime               0.01seconds

 

NOTE:PERM.FINAL.DATAisnolongerlockedbyyou.

 

在许多情况下,LOCK   程序指令确实能够成功地锁定引用的数据集,阻止其他用户或 SAS会话获取该数据集。然而,在某些情况下,即便数据集被另一个SAS会话独家锁定,但    LOCK    程序指令也会产生一个值为“0”&SYSLCKRC。假设出现不一致的情况,则不推荐使用LOCK 程序指令。

 

&SYSLIBRC

自动宏变量 &SYSLIBRC显示的是最近的 LIBNAME程序指令的成败,如果LIBNAME指派一个有效的文件库,则&SYSLIBRC显示为“0。LIBNAME的一个动态用途是为运行的 SAS程序的逻辑位置指定一个文件库。例如,如果 SAS程序 C:\SAS\temp\test.sasSAS 显示管理系统中运行,那么开发人员可能希望将 SAS文件库CURRENT 指派到 C:\SAS\temp :

*mustbesavedtoanamedSASprogramtoexecute;

%letsyscc=0;

%letpath=%sysget(SAS_EXECFILEPATH);


%letpath=%substr(&path,1,%length(&path)-%length(%scan(&path,-1,\)));

libnamecurrent"&path";

%putSYSLIBRC:&SYSLIBRC;

%putSYSCC:&syscc;

 

以下代码使用的是CURRENT文件库,由于LIBNAME程序指令运行正确,因此,&SYSLIBRC的值设置为“0

libnamecurrent"&path";

NOTE:LibrefCURRENTwassuccessfullyassignedasfollows:Engine:V9

PhysicalName:C:\SAS\temp

%putSYSLIBRC:&SYSLIBRC;SYSLIBRC:0

%putSYSCC:&syscc;

SYSCC:0

 

但是,如果 LIBNAME程序指令错误地引用了&PATCH,而非 &PATH,SAS产生一个警告,因为它无法解析宏变量 &PATCH。宏变量 &SYSCC会检测并显示这警告,警告代码显示为“4。另外,该错误会导致LIBNAME程序指令的运行故障, &SYSLIBRC 的值为负数便反映出程序指令运行故障。

libnamecurrent"&patch";

WARNING:ApparentsymbolicreferencePATCHnotresolved.NOTE:LibraryCURRENTdoesnotexist.

%putSYSLIBRC:&SYSLIBRC;SYSLIBRC:-70008

%putSYSCC:&syscc;

SYSCC:4

 

从编程方式来讲,可以借助几个方法检测这些故障。例如,可以使用 %SYMEXIST评估宏变量 &PATH,以确定它是否丢失,或者使用 %LENGTH评估 &PATH否有一个零字符长度。继LIBNAME程序指令之后,还可以验证 &SYSCC的值以避免在出现警告或“运行错误”时,后续代码继续执行。然而,最可靠的方法是在LIBNAME程序指令之后评估&SYSLIBRC如果值不是“0,则需终止程序或跳过后续需要引用 CURRENT 文件库的程序。

例如,C:\neverland文件目录在以下代码运行时不存在,&SYSLIBRC的值会显示为负数,反映出异常情况。由于这是一个异常情况,而不是出现了“运行时错误因此,&SYSCC依然显示为“0

%letsyscc=0;

libnamecurrent  "c:\neverland";WARNING:LibraryCURRENTdoesnotexist.

NOTE:LibrefCURRENTwassuccessfullyassignedasfollows:Engine:V9

PhysicalName:c:\neverland

%putSYSCC:&syscc;SYSCC:0

%putSYSLIBRC:&syslibrc;

SYSLIBRC:-70008

 

在稳健的设计中,&SYSLIBRC值应在 LIBNAME程序指令之后立即进行评估,其他的异常情况处理应该监测&SYSCC 和整个运行过程中其他相关自动宏变量。

 

相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
构建高效数据分析系统的关键技术
【10月更文挑战第5天】构建高效数据分析系统的关键技术
55 0
|
11天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
34 11
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
238 4
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
【优秀python web系统毕设】基于python的全国招聘数据分析可视化系统,包括随机森林算法
本文介绍了一个基于Python的全国招聘数据分析可视化系统,该系统利用数据挖掘技术、随机森林算法和数据可视化技术,从招聘网站抓取数据,进行处理、分析和预测,帮助用户洞察招聘市场,为求职者和企业提供决策支持。
214 2
|
4月前
|
数据采集 存储 监控
数据驱动开发:如何将数据分析融入开发流程
【8月更文挑战第14天】数据驱动开发是一种高效、智能的软件开发方法论,它通过将数据分析深度融入开发流程中,实现了精准决策、提升效率和持续改进的目标。为了成功实施数据驱动开发,团队需要明确数据需求、设计合理的数据架构、集成数据收集工具、实施CI/CD流程、进行数据分析与决策支持以及建立反馈循环机制。同时,还需要应对数据质量、技术和组织与文化等挑战。通过不断努力和实践,团队可以逐步建立起完善的数据驱动开发体系,推动产品不断迭代升级和业务持续增长。
|
4月前
|
存储 数据可视化 大数据
基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理
本文介绍了一个基于Python Django框架开发的大数据招聘数据分析系统,该系统具备后台管理功能和数据大屏展示,利用大数据技术收集和分析招聘市场趋势,帮助企业和招聘机构提高招聘效率和质量。
169 3
|
4月前
|
数据可视化 安全 前端开发
基于Django的美团药品数据分析与可视化系统,有多用户功能,可增删改查数据
本文介绍了一个基于Django框架开发的美团药品数据分析与可视化系统,该系统具备多用户功能,支持数据的增删改查操作,并采用MySQL、pandas、echarts和bootstrap技术栈,为用户提供了一个高效、安全且实用的药品数据管理和分析平台。
基于Django的美团药品数据分析与可视化系统,有多用户功能,可增删改查数据
|
4月前
|
数据采集 数据可视化 数据挖掘
基于Django的数据分析可视化系统,有后台,有增删改查,实现多用户登录
本文介绍了一个基于Django框架开发的今日头条数据分析可视化系统,该系统具备后台管理、增删改查功能以及多用户登录,利用数据可视化技术为新闻媒体行业提供数据管理和决策支持。
基于Django的数据分析可视化系统,有后台,有增删改查,实现多用户登录
|
4月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
65 0
|
4月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
256 0

热门文章

最新文章