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

VB6中Oracle客户端OO4O配置:解决ORA-12154服务名解析错误

解决VB6+OO4O连接Oracle 10g的ORA-12154错误:客户端分步配置方法

1. 安装匹配版本的Oracle 10g客户端

  • 下载32位Oracle 10g客户端安装包(VB6是32位程序,必须使用32位客户端,避免位数不兼容)
  • 运行安装程序,选择「管理员」或「运行时」安装类型(推荐管理员类型,确保功能完整)
  • 安装路径避免中文、空格等特殊字符,默认路径即可(如C:\oracle\product\10.2.0\client_1)
  • 安装完成后,检查系统环境变量PATH,确保Oracle客户端的bin目录(如C:\oracle\product\10.2.0\client_1\bin)排在其他同类目录之前,保证优先调用

2. 配置TNSNAMES.ORA文件

  • 定位到客户端安装目录下的network\admin文件夹(如C:\oracle\product\10.2.0\client_1\network\admin)
  • 若tnsnames.ora文件不存在,新建文本文件并改名为tnsnames.ora
  • 添加远程数据库的TNS配置条目,格式如下:
ORCL_REMOTE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 远程服务器IP/主机名)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 数据库服务名)
    )
  )
  • 替换参数:将远程服务器IP/主机名改为实际服务器地址,数据库服务名改为服务器端的Oracle服务名(可通过服务器端执行lsnrctl status命令查看)
  • 保存文件

3. 测试TNS解析有效性

  • 打开命令提示符(CMD),执行命令:tnsping ORCL_REMOTE(替换为你配置的TNS服务名)
  • 若返回OK状态,说明TNS解析正常;若仍报错,检查:
    • 服务器IP、端口是否正确
    • 数据库服务名是否匹配
    • 客户端与服务器之间的防火墙是否开放1521端口

4. 注册OO4O组件

  • 打开CMD,切换到Oracle客户端的bin目录,执行以下命令注册组件:
regsvr32 oip10.dll
regsvr32 oraocci10.dll
  • (注:Oracle 10g对应的组件版本号为10,若使用其他版本需调整数字)

5. 验证应用连接

  • 确保VB6应用的连接字符串使用正确的TNS服务名,示例代码:
Dim oraSession As Object
Dim oraDatabase As Object

Set oraSession = CreateObject("OracleInProcServer.XOraSession")
Set oraDatabase = oraSession.OpenDatabase("ORCL_REMOTE", "用户名/密码", 0&)
  • 替换ORCL_REMOTE为你配置的TNS服务名,用户名/密码为实际数据库账号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:50:42