跨平台搞数据交互的时候,SAS/ACCESS Interface to OLE DB 这个工具真的挺方便的。支持的数据库类型多,像是 SQL Server、Oracle、MySQL 这些主流的它都能接,连 OLAP 和文本文件它也不挑。嗯,只要装好对应的 OLE DB Provider,就能无缝连接。
安装上,没啥复杂的地方。只要你的 Base SAS 装好了,再配上 SAS/ACCESS Interface to OLE DB 插件,再把 MDAC 升级到 2.7 以上,一般都能跑起来。要注意的是,OLE DB Provider是第三方的,记得下对版本。
平时用得最多的就是 LIBNAME 语句那一套,连完库之后,数据就跟 SAS 本地的一样用,响应也快,代码也简单:
libname mydb oledb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test\mydata.mdb";
如果你想写点更复杂的 SQL,那就可以用 Pass-Through 模式,直接丢 SQL 进去,SAS 帮你跑,效率也还不错:
proc sql;
create table mytable as
select * from [mydb..Customers];
quit;
调试方面也不麻烦,日志里能看到详细的报错信息。性能调优可以从 连接池 和 索引 下手,实在不行再看看是否是 Provider 兼容性问题。
如果你常常需要跟不同数据库打交道,又刚好在用 SAS,那这接口真挺省心的。对了,ODBC 配置那篇也可以一起看看,搭配着用效果更好。