zoukankan      html  css  js  c++  java
  • SAS学习笔记44 宏函数

    类SAS函数的宏函数

    该部分函数共5个,其无论是名字、语法、功能都与SAS函数类似,只是在函数名前多了一个“%”。这5个宏函数分别是:

    • %INDEX

    • %LENGTH

    • %SCAN

    • %SUBSTR

    • %UPCASE

    需要注意的一点是%INDEX,%SCAN这两个函数,其对应的SAS函数INDEX,SCAN;在INDEX查找指定的文本串,及SCAN中指定分隔符时,需要用引号将其内容引起来;而%INDEX,%SCAN则不需要引号。因为在宏语言中所有的东西都是文本,因此不需要用引号特别指定是文本

    完成数值计算的宏函数

    如果想要完成数值计算则需要使用%EVAL宏函数来完成。另外,如果计算中出现小数,则需要用%SYSEVALF

    另外,%EVAL和%SYSEVALF都是可以进行乘法和除法运算,只不过%EVAL只能对整数进行;而%SYSEVALF可以对小数进行运算

    有关宏变量状态的宏函数

    %SYMEXIST(macro-variable-name)宏函数用于判断一个宏变量是否存在,其参数为宏变量名。若该宏变量存在,则返回1;否则,返回0

    %SYMGLOBL(macro-variable-name)宏函数用于判断一个宏变量是否是全局宏变量,即是否存在于Global Symbol Table中。如果是全局宏变量,则返回1;否则返回0

    %SYMLOCAL(macro-variable-name)宏函数用于判断一个宏变量是否是局部宏变量,即是否存在于Local Symbol Table中。如果是局部宏变量,则返回1;否则返回0

    有关宏程序状态的宏函数

    %SYSMACEXEC(macro-name)宏函数用于获取指定宏的运行状态,若该宏在运行当中,则返回1;否则返回0

    %SYSMACEXIST(macro-name)宏函数用于判断一个宏程序是否存在于Work.SASMacr catalog中,如果存在返回1,否则返回0

    %SYSMEXECDEPTH宏函数无参数,用于判断宏的嵌套层数。若在宏外调用,则返回0;如果是在一层的宏中调用,则返回1;若在嵌套1层的宏中调用,则返回2;以此类推

    %SYSMEXECNAME(n)宏函数通常与上面的%SYSMEXECDEPTH一起使用,用于返回指定嵌套层的宏名字。若n为0,则返回OPEN CODE;若大于0,则返回对应嵌套层的宏名字。若不存在该嵌套层,则会显示警告信息

    调用SAS函数的宏函数

    %SYSFUNC(function(argument(s))<, format>))宏函数用于调用SAS函数或者使用FCMP过程步创建的自定义函数,还可以将结果按照指定格式输出

    其他宏函数

    %SYSGET(environment-variable)宏函数用于获取当前操作系统的环境变量的取值

    %SYSPROD(product)函数用于判断在当前的SAS环境中,指定的SAS产品是否有License。若有相应许可,则返回1;若无许,则返回0;若参数中的产品名有误,则返回-1

    Quoting Function

    Quoting Function主要是用于屏蔽一些字符的特定功能,将其作为普通的字符来对待。例如:运算符、比较符、操作符等,还有两个Macro Trigger:%,&

    这部分共包含有12个函数,分别是:%STR、%NRSTR、%QUOTE、%NRQUOTE、%BQUOTE、%NRBQUOTE、%SUPERQ、%UNQUOTE、%QSAN、%QSUBSTR、%QSYSFUNC、%QUPCASE

    其中后4个函数有对应的普通宏函数,其主要功能是类似的

  • 相关阅读:
    事务与事务隔离级别
    TNS12535: TNS: 操作超时
    11g的exp导出空表提示EXP00011: SCOTT.TEST1 不存在
    oracle中chr含义
    SQL Server 2008 System Views Map
    SQL Server Execution Plans eBook
    生成建表脚本(V3.0)
    SQL Server 2008 通过配置数据库邮件实现发送邮件功能
    MSSQL2005中的非公开存储过程sp_msdependencies
    SQL Server Tacklebox Free eBook
  • 原文地址:https://www.cnblogs.com/abble/p/11265064.html
Copyright © 2011-2022 走看看