You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Synapse Analytics中用单个链接服务通过SID或服务名访问Oracle数据库

实现单个Oracle链接服务同时支持SID和服务名访问(基于tnsnames.ora)

1. 编辑tnsnames.ora添加兼容双模式的连接条目

找到Oracle客户端的tnsnames.ora文件(通常位于ORACLE_HOME/network/admin目录),添加如下配置:

ORACLE_DB_COMBO =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = your-oracle-host)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = your-existing-sid)
      (SERVICE_NAME = your-target-service-name)
    )
  )
  • 替换your-oracle-host为数据库实际主机IP或域名
  • 替换your-existing-sid为原链接服务使用的SID
  • 替换your-target-service-name为需要访问的服务名

该条目同时包含SID和SERVICE_NAME字段,Oracle客户端会自动匹配连接请求对应的参数,无需区分是基于SID还是服务名发起的访问。

2. 修改现有Oracle链接服务的配置

进入链接服务的属性配置界面(以SQL Server为例:Linked Servers -> 目标链接服务 -> Properties):

  • 将数据源字段从原有的主机名:端口/SID格式,改为上述定义的TNS条目名ORACLE_DB_COMBO
  • 确保Oracle客户端通过TNS_ADMIN环境变量指向正确的tnsnames.ora文件路径(Windows环境可在系统变量中配置)

3. 验证连接有效性

  • 原有SID访问逻辑:执行原有的查询语句,链接服务会自动匹配TNS条目中的SID字段,保持业务正常运行
  • 服务名访问逻辑:直接访问服务名对应的数据库对象(如PDB中的表),链接服务会通过TNS条目中的SERVICE_NAME字段建立连接

注意事项

  • 确保Oracle客户端版本为11g及以上,该版本支持同时指定SID和SERVICE_NAME的TNS配置
  • 可通过tnsping ORACLE_DB_COMBO命令测试TNS条目是否能正常解析
  • 链接服务的身份验证配置无需修改,沿用原有设置即可

内容的提问来源于stack exchange,提问作者kartheek baddula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:00:59