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数据文件语法参考卡片