必须用Oracle Developer Tools for VS Code,因其是Oracle官方唯一维护的扩展,原生支持OCI、tnsnames.ora、Wallet及Kerberos;其他插件如SQLTools不集成OCI、不解析tnsnames.ora、不支持企业级认证,易报ORA-12154或静默失败。

必须用 Oracle Developer Tools for VS Code,其他插件(如 SQLTools、Database Client)连 Oracle 会卡在 ORA-12154 或静默失败,根本读不了 tnsnames.ora,也不支持 Wallet 和 Kerberos。
为什么 SQLTools + Oracle Driver 行不通
社区打包的所谓“Oracle Driver”不是官方驱动,底层没集成 OCI。它既不解析 tnsnames.ora,也不识别 oracle.tnsAdmin 设置;填了 Service Name,却按 SID 方式传参——结果就是连接卡住或报 Connection refused / authentication failed,日志里没有有效线索。你改十次配置,不如换回官方插件。
安装后必须重启 VSCode 才能生效
这是硬性要求,不是可选步骤。不重启,侧边栏看不到 Oracle 图标,Ctrl+Shift+P 搜 Oracle:Connect 无响应,新建连接按钮也不会出现。验证方式很简单:重启前搜 Oracle,若命令面板空空如也,说明插件根本没加载。
Basic 连接三字段必须严丝合缝
Host、Port、Service Name 任一错,连接就停在 “Connecting…” 或直接弹窗 Connection failed。别靠猜,先跑一遍 lsnrctl status 看真实输出:
-
Host:本地开发别填localhost(可能走 IPv6 失败),改用127.0.0.1;远程库必须填真实 IP 或 DNS 名,不能是内网别名 -
Port:默认是1521,不是8080、22或1522(除非你确认监听器启用了非标端口) -
Service Name:必须和lsnrctl status输出里的SERVICE_NAME完全一致,大小写敏感、空格不可省略;常见错误是填了ORCL,实际却是orclpdb1
连接成功后查不到表?先看 schema 权限
右下角显示 Connected to [name] 只代表网络通、认证过,不代表你能看到数据。执行 SELECT * FROM USER_TABLES 返回空,大概率是因为:
- 当前用户没建任何表(比如连的是
SYSTEM而非业务 schema) - 对象权限没授(
GRANT SELECT ON xxx TO your_user缺失) - 误用了
SID当Service Name,导致连到了 CDB 而非 PDB,USER_TABLES查的是当前容器下的对象
真正容易被忽略的点是:Oracle 的 schema 绑定极紧,连对了,不等于看得见——权限、容器、角色三者缺一不可。


















