把 SAS 接到 VS Code

从医学和公卫科研中的真实分析场景出发,记录 SAS Extension for Visual Studio Code 的本地与远程 IOM 配置思路。
sas
vs code
research workflow
Author
Published

Wednesday, April 29, 2026

最近在整理 SAS 的使用环境时,我又重新试了一轮 VS Code 里的 SAS Extension。这个过程让我意识到一件小事:很多科研工具的配置文章容易写成换一个编辑器就能提高效率,但真正卡住人的,往往不是编辑器本身,而是本地 SAS、远程服务器、许可证、路径、账号这些很具体的东西。

SAS 还是 SAS,真正执行代码的仍然是你已经安装或有权限访问的 SAS 环境。VS Code 在这里更像一个比较轻的工作台:写 .sas 文件、运行代码、看 log、管理项目文件。

1. 先想清楚:你到底要连接哪一种 SAS

开始配置前,我建议先不要急着点安装。先问自己一个问题:

我的 SAS 程序最终在哪里运行?

常见情况大概有三类。

第一类是本机已经装了 SAS 9.4,比如 Windows 电脑上有 SAS Foundation 或 SAS Enterprise Guide。这种情况下,可以考虑 SAS 9.4 (local) profile。VS Code 负责提交代码,本机 SAS 负责运行。

第二类是单位或课题组有远程 SAS 服务器,平时可能通过 SAS Enterprise Guide 连上去。这种情况下,通常要问管理员服务器 host、port、username 等信息,然后配置 SAS 9.4 (remote - IOM) profile。

第三类是有一台 Linux/Unix 服务器,里面可以通过命令行直接运行 sas,并且你有 SSH 权限。SAS Extension 也支持 remote SSH,不过这篇主要写官方文档里我最常用到的 local 和 IOM 两种配置。

这一步很重要。因为 VS Code 插件不是凭空提供一个 SAS 环境。你没有 SAS 软件、没有远程服务器权限、没有可用许可证,只安装插件通常是跑不起来的。

2. 安装 VS Code 插件之前,先检查 SAS 端

在 VS Code 里需要安装的是 SAS 官方的 SAS Extension for Visual Studio Code。安装方式和普通 VS Code 插件一样,在 Extensions 面板里搜索 SAS 安装即可。

但更容易出问题的是 SAS 端的依赖。根据 SAS 官方文档,如果使用 SAS 9.4 (local)SAS 9.4 (remote - IOM),Windows 客户端需要安装:

  • SAS Integration Technologies Client for Windows (ITCLIENT)
  • SAS Providers for OLE DB

官方文档也提到,从 SAS Extension for VS Code v1.15 开始,使用这类连接时需要安装 SAS Providers for OLE DB。它们有时会随 SAS Enterprise Guide 或 SAS Add-in for Microsoft Office 一起安装;如果没有,就需要通过 SAS 9.4 安装程序或 SAS 官方下载页面补装。

一个比较直接的检查方法,是看机器上是否存在类似下面的目录:

C:\Program Files\SASHome\x86\Integration Technologies
C:\Program Files\SASHome\x86\SASProvidersforOLEDB

如果你的 SAS 安装在自定义路径,就要到对应的 SASHome 下面去找。路径不一定完全相同,关键是确认 ITCLIENT 和 SAS Providers for OLE DB 是否存在。

这里不用把问题想复杂。对大多数本机 Windows + SAS 9.4 的使用者来说,如果 SAS Enterprise Guide 能正常打开,相关组件很可能已经在机器上。但很可能不等于一定,真正配置失败时还是要回到这些路径和组件上检查。

3. 在 VS Code 里新增一个 profile

插件装好后,打开 VS Code 的 Command Palette:

F1

或者:

Ctrl + Shift + P

然后输入并执行:

SAS: Add New Connection Profile

官方文档里对应的命令名是 SAS.addProfile。你需要选择一种 connection type,然后按照提示填写信息。创建好的 profile 会存到 VS Code 的 settings.json 里。以后如果有多个 SAS 环境,也可以用:

SAS: Switch Current Connection profile

来切换当前 profile。

我自己的理解是,profile 就像一张连接卡片。它告诉 VS Code:这段 SAS 代码要交给哪里运行,是本机的 SAS 9.4,还是远程 IOM server。

4. 配置本机 SAS 9.4:local profile

如果 SAS 就装在你自己的 Windows 电脑上,可以选择:

SAS 9.4 (local)

官方文档里 local profile 的 connectionType 是:

{
  "connectionType": "com",
  "host": "localhost"
}

实际操作时,通常不需要手动写这段 JSON,按照 VS Code 的提示填写即可。host 默认可以理解为 localhost,也就是本机。

local profile 的重点不在 host,而在本机组件是否完整。尤其是前面提到的 ITCLIENT 和 SAS Providers for OLE DB。如果 profile 建好了,但运行代码时连接失败,第一步不要怀疑自己的 SAS 语法,先检查客户端组件和 SAS 安装路径。

我建议配置好以后,先不要直接跑复杂项目。新建一个最小的 .sas 文件,例如:

proc product_status;
run;

data test;
  input id age;
  datalines;
1 23
2 31
3 45
;
run;

proc print data=test;
run;

如果这段能运行,并且 log 和 output 都能正常看到,再去跑自己的课题代码。最小例子的好处是,它可以把环境问题和项目代码问题分开。

5. 配置远程 SAS:IOM profile

如果你平时使用的是学校、医院或公司提供的远程 SAS 环境,尤其是通过 SAS Enterprise Guide 连接的那种,更可能用到:

SAS 9.4 (remote - IOM)

官方文档里 IOM profile 的 connectionType 是:

{
  "connectionType": "iom",
  "host": "your-server.example.edu",
  "username": "your_username",
  "port": 8591
}

这里有几个信息需要提前问清楚:

  • host:IOM server 的地址
  • username:连接服务器使用的用户名
  • port:IOM server 端口,官方文档给出的默认值是 8591
  • 是否需要 VPN、校园网或内网环境
  • 账号是否有运行 SAS Workspace Server 的权限

IOM 这个词容易让刚接触的人有点紧张。简单说,它是 SAS 9 体系里一种比较正式的远程连接方式,常见于已经部署好 SAS Workspace Server 的机构环境。你不需要自己理解所有服务器架构,但至少要知道:IOM 不是随便填一个服务器 IP 就行,它背后要有相应的 SAS 服务在运行。

如果你平时能用 SAS Enterprise Guide 连接同一个服务器,那么 VS Code 这边通常也有配置的基础。但具体 host、port、认证方式,还是以单位管理员提供的信息为准。

6. 一个科研场景里的最小工作流

配置完成后,我比较建议把 SAS 项目按文件夹整理,而不是把代码都放在桌面或下载目录里。比如一个比较简单的结构可以是:

project_name/
  code/
    00_setup.sas
    01_clean_data.sas
    02_analysis.sas
    03_tables.sas
  data_raw/
  data_processed/
  output/
  log/

VS Code 的优势主要在这里体现:它适合管理一组纯文本文件。.sas 文件本质上也是文本文件,放在一个项目目录里之后,搜索变量名、比较版本、整理注释都会更方便。

如果后续和 Git 配合,也可以把 SAS 代码纳入版本管理。对科研训练来说,这比最后一版、最终版2、投稿修改版、final更稳妥一些。当然,数据文件尤其是含隐私信息的数据,不应该随便放进公开仓库。

在 VS Code 里写 SAS,我会先确认三件事:

  1. 当前 profile 是否选对了。
  2. 代码里的路径是否适合当前运行环境。
  3. log 里是否有红色 error 或关键 warning。

第三点尤其重要。SAS 有时即使前面某一步出错,后面的程序仍然会继续跑。不要只看有没有 output,要养成看 log 的习惯。

7. 常见问题:多半不是插件坏了

这类工具配置里,最常见的挫败感是:我明明按步骤做了,为什么还是连不上?

我会按下面顺序排查。

先确认 SAS 本身能不能用

如果是 local profile,先单独打开 SAS 或 SAS Enterprise Guide,看本机 SAS 是否能运行一段最小代码。

如果是 IOM profile,先确认自己是否能用原来的方式连接远程 SAS,比如 SAS Enterprise Guide。假如 EG 都连不上,VS Code 这边也很难凭空解决。

再确认客户端组件

local 和 IOM 都可能依赖 ITCLIENT 和 SAS Providers for OLE DB。特别是换电脑、重装系统、只装了部分 SAS 组件时,这里很容易漏。

如果机器上已经有 SAS 9.4M6 之类的版本,官方文档建议 SAS Providers for OLE DB 和 ITCLIENT 的版本要与本机 SAS 软件匹配;如果机器上没有已有 SAS 软件,则下载并安装当前最新版本。这里最好按单位授权和官方说明来处理,不要随便从不明来源下载。

最后看 profile 信息

profile 名字可以随便取,但连接信息不能随便填。IOM profile 里的 host、username、port 任意一个错了,都可能连接失败。

如果你有多个 profile,比如一个 local、一个 remote,运行前看一下 VS Code 状态栏当前选中的 profile。很多时候不是配置没成功,而是当前 profile 选错了。

8. 我不建议怎么用

还有一点需要单独说:如果项目涉及真实患者数据、医院数据或任何敏感信息,先遵守本单位的数据管理规定。VS Code、Git、云盘、远程服务器这些工具用起来都方便,但方便不等于可以随意同步或上传。

9. Takeaways

第一,先确定 SAS 程序在哪里运行,再配置 VS Code。
local、IOM、SSH 解决的是不同运行环境的问题。不要把 connection type 当成随便选择的选项。

第二,SAS Extension 不是 SAS 本身。
它让 VS Code 能和已有 SAS 环境协作,但不会替你提供许可证、服务器权限或完整的 SAS 安装。

第三,配置成功后先跑最小例子,再迁移真实项目。
最小代码可以快速判断问题出在环境、连接还是项目代码。等这一层稳定以后,再把真实课题里的清洗、建模和制表流程搬过去,会少很多不必要的焦虑。

对我来说,SAS 搭配 VS Code 的价值不在于看起来更现代,而在于让 SAS 程序回到普通文本项目的管理方式里。对于需要长期维护分析代码的人,这一点已经足够实际。