mysql导入sas文件夹_SAS 读取指定目录下文件列表宏

该博客介绍了如何使用SAS宏来获取指定目录下的特定类型文件(如xlsx和pdf)。宏 `%GET_NAME` 用于读取文件夹中的文件列表,并根据指定的文件类型进行筛选。通过 `%GETALL` 宏,可以自动化处理多个目录下的不同文件类型。最终,数据被存储在数据集中,并可用PROC PRINT查看。此外,还展示了如何将结果导出到HTML文件。
摘要由CSDN通过智能技术生成

OPTIONS PS=MAX LS=MAX NOCENTER SASMSTORE=SASUSER MSTORED MAUTOSOURCE;

/*获取指定文件夹的指定类型的所有文件*/

%MACRO GET_NAME(DIRNAME,TYP,OUT_TABLE)/STORE;/*参数有两个:路径,文件类型后缀*/

%PUT %STR(----------->DIRNAME=&DIRNAME) ;

%PUT %STR(----------->TYP=&TYP) ;

DATA TEMP;

RC=FILENAME("DIR","&DIRNAME");/*把&DIRNAME值传给文件引用符“DIR"*/

OPENFILE=DOPEN("DIR");/*得到路径标示符OPENFILE,DOPEN是打开directory的sas内置函数*/

IF OPENFILE>0 THEN DO;/*如果OPENFILE>0表示正确打开路径*/

NUMMEM=DNUM(OPENFILE);/*得到路径标示符OPENFILE中member的个数nummem*/

DO II=1 TO NUMMEM;

NAME=DREAD(OPENFILE,II);/*用DREAD依次读取每个文件的名字到NAME*/

filepath="&DIRNAME"||NAME;

fnum=compress(NAME,".xml","");

fnum=compress(fnum,"user_case","");

OUTPUT;/*依次输出*/

END;

END;

KEEP NAME filepath fnum;/*只保留filepath、fnum列*/

RUN;

PROC SORT DATA=TEMP;/*按照NAME排序*/

BY DESCENDING NAME;

%IF &TYP^=ALL %THEN %DO;/*是否过滤特定的文件类型&TYP*/

WHERE INDEX(UPCASE(NAME),UPCASE(".&TYP"));/*Y,则通过检索NAME是否包含&TYP的方式过滤文件类型*/

%END;

RUN;

DATA &OUT_TABLE(KEEP=NAME ID DIRECTORY);

LENGTH DIRECTORY $20.;

SET TEMP;

ID=_N_;

DIRECTORY="&DIRNAME.";

RUN;

PROC APPEND BASE=S.DIR DATA=&OUT_TABLE;

RUN;

RUN;

%MEND;

LIBNAME S '.';

%MACRO GETALL;

DATA _NULL_;

DO I='报告样例及指标说明','数据字典';

CALL EXECUTE(CATS('%GET_NAME(.\'||I||',xlsx,DIR)'));

END;

DO I='报告样例PDF版';

CALL EXECUTE(CATS('%GET_NAME(.\'||I||',pdf,DIR)'));

END;

**%GET_NAME(.\白皮书,pdf,DIR);

/*参数1:log文件所在位置

参数2:读取文件类型

参数3:log文件名存储的数据集名称*/

%MEND;

%GETALL;

ODS HTML FILE='.\目录.xls';

PROC PRINT DATA=S.DIR;

RUN;

ODS HTML CLOSE;

要在 SAS 中调用 MySQL 文件,你需要执行以下步骤: 1. 首先,你需要安装 SAS/ACCESS® Interface to ODBC 软件,该软件提供了 SAS 连接 ODBC 数据源的能力。你可以在 SAS 官方网站上下载并安装该软件。 2. 然后,你需要配置 ODBC 数据源,以便 SAS 可以连接到 MySQL 数据库。在 Windows 操作系统中,你可以在“控制面板”->“管理工具”->“ODBC 数据源”中找到 ODBC 数据源管理器,然后在“系统 DSN”选项卡中添加一个新的 MySQL 数据源。 3. 在 SAS 中,你可以使用 LIBNAME 语句来连接到 MySQL 数据库。例如,以下语句将连接到名为 mydatabase 的 MySQL 数据库,并创建一个名为 mysaslib 的 SAS 数据库库: ``` libname mysaslib odbc datasrc='mydatabase' user='username' password='password'; ``` 其中,datasrc 参数指定了 ODBC 数据源名称,user 和 password 参数指定MySQL 用户名和密码。 4. 连接成功后,你可以使用 SAS 语句来读取和写入 MySQL 数据库中的数据。例如,以下语句将从 MySQL 数据库中读取名为 mytable 的表,并将其存储到名为 mysasdata 的 SAS 数据集中: ``` data mysasdata; set mysaslib.mytable; run; ``` 在这个示例中,mysaslib 是之前定义的 SAS 数据库库,mytable 是 MySQL 数据库中的表名。 以上就是在 SAS 中调用 MySQL 文件的基本步骤。需要注意的是,连接 MySQL 数据库需要正确的用户名和密码,以及对 MySQL 数据库的正确权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值