专栏首页老Z的博客SAS自定义函数获取某逻辑库下所有表名

SAS自定义函数获取某逻辑库下所有表名

今天看到一个群友提的一个问题:SAS有无一个函数将某LIBNAME下表名都取出?这个问题用字典数据表或者视图(DICTIONARY Tables and SASHELP Views)可以轻松解决。如获取逻辑库SASHELP下所有表名,代码如下:

proc sql noprint;
     select MEMNAME into :tnames separated by ', '
         from dictionary.tables
         where libname='SASHELP'
		 ;

    	select MEMNAME into :tnames separated by ', '
         from sashelp.vtable
         where libname='SASHELP'
		 ;
 quit;

但是群友的问题是有没有现成的函数,即类似下面这样的用法:

data _null_;
    TNAMES=get_tnames('SASHELP');
run;

而我们知道当前在SAS中并没有这种功能的函数。好在SAS 9.2版本中的PROC FCMP允许用户编写个性化的函数并可在DATA步使用(SAS 9.1.3中用户自定义函数只能在某些过程步中使用)。代码如下:

%macro get_tnames();
proc sql noprint;
    select MEMNAME into :tnames separated by ', '
        from dictionary.tables
        where libname=&lib
        ;
quit;
%mend get_tnames;

proc fcmp outlib=work.functions.demo;
    function get_tnames(LIB $) $;
    length TNAMES $ 32767;
    rc=run_macro('get_tnames', LIB, TNAMES);
    return(TNAMES);
    endsub;
run;

options cmplib=work.functions;

data demo;
    TNAMES=get_tnames('SASHELP');
run;

结果如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SAS汉字转拼音解决方案

    在数据处理的工作中,可能会碰到要把汉字转换为对应拼音的问题,如将大量的中文姓名或名称转换成对应的拼音。之前写过一个简单的SAS程序来实现此目的,其主要步骤为:首...

    专业余码农
  • 正则表达式之非捕获匹配(?:...)

    当我们在做Tables、Listings以及SDTM Datasets时,有的时候需要用正则表达式来处理一个较长的字符串,即每隔一定长度插入一个分隔符,进而实现...

    专业余码农
  • SAS求子集

    前几天在微信群里看到一个问题:求一个数组的子集。SAS中实现排列的方法有多种,最易懂的方法应该是PROC SUMMARY以及CALL ALLCOMB,两种方法的...

    专业余码农
  • Google 是如何做 Code Review 的

    Google 的代码审查在工程实践中起着重要作用,并且 Google 早期就已经开始采用。直到今天,代码审查仍用于保证代码库的整洁,一致,并确保没有人随意提交代...

    GitHubDaily
  • CentOS的tree

    在windows和linux中都有tree命令,这里我们介绍一些CentOS 7中的tree命令。

    孔贼
  • python入门到实践-Hello P

    安装什么的我直接略过,网上各种教程有的是,如果在安装中出了了什么问题,你解决不了的可以随时联系我。我接下来的操作就当作你已经安装完了Python3了!

    py3study
  • linux更换shell为zsh并个性化配置oh my zsh

    禹都一只猫olei
  • 那些对数据实时性要求高的APP后端是怎么做的

    我们团队目前主要的工作只能就是一套网关系统,围绕网关或者是接入层系统来说,是存在一套通用解决方案的。

    春哥大魔王
  • 【AI 原力觉醒】《纽约时报》两万字长文,深度剖析谷歌大脑简史

    【新智元导读】《纽约时报》刊文,记者 Gideon Lewis-Kraus 深入谷歌大脑,从团队建立开始,阐述他们如何用神经网络改变谷歌翻译这一谷歌重要产品。文...

    新智元
  • django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)

    玩蛇的胖纸

扫码关注云+社区

领取腾讯云代金券