SAS编程演义
上QQ阅读APP看书,第一时间看更新

3.3 读取DBMS数据文件

上一节从总体上对读取方式、读取对象以及读取策略做了介绍,接下来,我们对每种读取对象逐一进行介绍,首先从DBMS数据文件开始。

→3.3.1 SAS/ACCESS与DBMS

读取不同DBMS数据文件,需要采用不同的数据库引擎,因此,在读取之前请先用「Proc product_status; 」和「Proc setinit; 」核实自己的SAS/ACCESS是否已经安装并授权了不同数据库文件的引擎,具体可参考1.4的介绍。此外,读取DBMS数据文件还需要安装DBMS所要求的客户端软件,关于SAS/ACCESS和DBMS的关系及读取原理见图3-1所示。

图3-1 SAS/ACCESS与DBMS的关系

注:1.并非所有SAS/ACEESS接口均支持ACCESS和DBLOAD过程;

2.某些情形下,客户端和服务器可部署在同一台机器上。

至于具体的访问方法,正如表3-1数据读取策略总结所言,访问DBMS数据文件有三种方式,而推荐的最佳方式是LIBNAME语句,这是因为采用LIBNAME语句读取有如下优势。

● 代码简洁,容易书写。

● 直接上手,只需要掌握SAS语法即可实现DBMS数据的访问和操作,不需要了解DBMS的SQL语言。

● 功能丰富,利用LIBNAME语句和数据集的选项可实现比DBMS更多的操作,如锁定、假脱机以及数据类型转换。

● 借助DBMS的索引及其他功能,可优化表链接和WHERE从句的处理。

● 可直接传递一些函数到DBMS。

我们举一个SAS利用LIBNAME语句访问DB2数据文件的例子,体会下这种方式的用法。其中mydb2是自命名的逻辑库,db2即指定的引擎。

程序3-1 LIBNAME语句访问DB2数据文件

libname mydb2 db2 user=guhq password="88guhq88" datasrc=datadb;

→3.3.2 LIBNAME语句访问DBMS数据文件语法

不过,需要留意的是,不同的DBMS数据文件,除了引擎名,在访问时一些连接选项也会有所不同,要区别对待,但是LIBNAME语句的语法是通用的,见语法3-1。

语法3-1 LIBNAME语句访问DBMS数据文件语法参考卡片