跨平台搞数据交互的时候,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 配置那篇也可以一起看看,搭配着用效果更好。