Oracle不装客户端的办法

本文介绍了一种PB9+Oracle9iR2环境下不安装Oracle客户端的方法,通过拷贝必要的文件及修改注册表和环境变量来实现,整个过程简单高效。

Oracle不装客户端的办法:

PB9 + Oracle9iR2 不装客户端的安装办法,总文件不超过36M。

1,取己安装并配置好的Oracle客户端文件拷贝本地磁盘
 目录: ../Oracle/ora92/network/ADMIN/  必需文件: tansnames.ora
       ../Oracle/ora92/network/mesg/   所有文件
       ../Oracle/ora92/bin/            所有的DLL文件,其他可以不要
       ../Oracle/ora92/ocmmon/nls/ADMIN/DATA/    所有文件
       ../Oracle/ora92/ocmmon/nls/mesg/          所有文件
       ../Oracle/ora92/oracore/mesg/             所有文件
       ../Oracle/ora92/oracore/zoneinfo/         所有文件

2, 增加注册表 (可以通过PB写到注册表内)
 [HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
 "ORACLE_HOME_NAME"="OraHome92"
 "ORACLE_HOME"="C://oracle//ora92"               //Oracle客户端文件路径
 "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"  //字符集

3,增加环境变量
 // 注册表路径
 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment]
 如:"Path"="%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;c:/oracle/ora92/bin"
 // 加在最后

建议把Oracle客户端文件放到当前应用目录下,注册表操作通PB的RegistrySet()写入,如:
 // Oracle 客户端文件请放在程序目录下边: gs_directory/Oracle/ora92/...
 ls_dir = ls_dir + '/Oracle/ora92'
 li_rtn = RegistrySet("HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0", "ORACLE_HOME_NAME", RegString!, "OraHome92")
 li_rtn = RegistrySet("HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0", "ORACLE_HOME", RegString!, ls_dir)
 li_rtn = RegistrySet("HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0", "NLS_LANG", RegString!, "SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
 
 //环境变量Oracle动态库文件路径: gs_directory/Oracle/ora92/bin/
 ls_dir = ls_dir + '/bin'
 li_rtn = RegistryGet("HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment","Path", RegExpandString!, ls_path)
 li_pos = Pos(ls_path,ls_dir,1)
 
 If li_rtn <> 1 Then
  Messagebox('错误','注册表读写失败!')
  Return
 End If
 
 If li_pos <= 0 Then
  If Len(ls_path) > 0 Then
   ls_path = ls_path + ";"+ls_dir
  ElseIf Len(ls_path) <= 0 Then
   ls_path = ls_dir
  End If
  li_rtn = RegistrySet("HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment","Path", RegExpandString!, ls_path)
 End If
 
 If li_rtn <> 1 Then
  Messagebox('错误','注册表读写失败!')
  Return
 End If
 Messagebox('提示','配置完毕,请重启Windows生效!') 

可以!即使你**没有安装 Oracle 数据库**,只要正确配置了 Oracle 客户端工具(如 Instant Client),并且有网络权限访问远程数据库服务器,就可以使用 **PL/SQL Developer** 连接别人的 Oracle 数据库。 --- ### ✅ 实现原理 PL/SQL Developer 是一个第三方客户端工具(由 Allround Automations 开发),它本身包含 Oracle 网络通信功能,但它依赖于 **Oracle 客户端库(OCI)** 来建立连接。因此你需要: 1. 安装 **Oracle Instant Client** 2. 配置好 `tnsnames.ora` 文件 3. 设置环境变量 4. 在 PL/SQL Developer 中输入正确的用户名、密码和数据库别名 --- ### 🛠️ 具体操作步骤(无 Oracle 数据库,仅用 PL/SQL Developer 连远程库) #### 步骤 1:下载 Oracle Instant Client 👉 访问官网: [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html) 选择: - 类型:**Instant Client for Microsoft Windows (x64)** - 下载:**Basic Package**(必须) - 文件名类似:`instantclient-basic-windows.x64-21.x.x.x.zip` > 注意:PL/SQL Developer 是 32 位程序时,需下载 **32位版 Instant Client**;若确定,建议统一使用 64 位系统 + 64 位客户端 + 64 位 PL/SQL Developer 替代方案(如 Oracle SQL Developer)。 解压到本地目录,例如: ``` D:\oracle\instantclient_21_13 ``` --- #### 步骤 2:配置 `tnsnames.ora` 在 Instant Client 目录下创建文件夹和文件: ``` D:\oracle\instantclient_21_13\network\admin\tnsnames.ora ``` 编辑 `tnsnames.ora`,添加远程数据库信息(请向 DBA 获取实际参数): ```tns ORCL_REMOTE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ``` | 参数 | 示例值 | 说明 | |------|--------|------| | HOST | 192.168.1.100 | 远程 Oracle 服务器 IP | | PORT | 1521 | 默认监听端口 | | SERVICE_NAME | ORCL | 数据库的服务名(是 SID) | > 💡 如何确认服务名?可让管理员执行: > ```sql > SELECT value FROM v$parameter WHERE name = 'service_names'; > ``` --- #### 步骤 3:设置系统环境变量 右键“此电脑” → 属性 → 高级系统设置 → 环境变量 添加以下系统变量: ```text TNS_ADMIN = D:\oracle\instantclient_21_13\network\admin NLS_LANG = AMERICAN_AMERICA.AL32UTF8 (推荐设置,避免中文乱码) PATH 添加:D:\oracle\instantclient_21_13 ``` > ⚠️ 修改后重启电脑或至少重启命令行和 PL/SQL Developer。 --- #### 步骤 4:启动 PL/SQL Developer 并登录 打开 PL/SQL Developer: - Username: 输入你的数据库用户名(如 SCOTT) - Password: 输入密码 - Database: 下拉框中应出现 `ORCL_REMOTE`,选中即可 点击 Login 登录。 ✅ 成功则进入主界面。 --- ### 🔐 必要条件总结 | 条件 | 是否必需 | 说明 | |------|----------|------| | ✅ 可达的网络 | 是 | 你能 ping 通远程服务器 IP | | ✅ 开放的 1521 端口 | 是 | 防火墙允许从你机器访问该端口 | | ✅ 正确的用户名/密码 | 是 | 拥有合法账户 | | ✅ 正确的服务名或 SID | 是 | 否则报 ORA-12514 | | ✅ 已安装 Instant Client | 是 | 提供底层连接支持 | | ✅ 环境变量配置正确 | 是 | 否则找到 tnsnames | --- ### 🧪 测试连通性的小技巧 #### 1. 使用 `tnsping` 命令测试 TNS 连接 打开 CMD: ```bash tnsping ORCL_REMOTE ``` 如果返回 "OK",说明网络和 TNS 配置没问题。 > 注:tnsping 是 Instant Client 自带命令。 #### 2. 使用 `ping` 测试网络可达性 ```bash ping 192.168.1.100 ``` 确保能通。 --- ### ❗常见错误及解决方法 | 错误 | 原因 | 解决办法 | |------|------|---------| | ORA-12154: TNS:could not resolve service name | `tnsnames.ora` 路径或名称错误 | 检查 `TNS_ADMIN` 和文件拼写 | | ORA-12541: No listener | 监听未开或端口通 | 检查远程监听状态和防火墙 | | ORA-01017: invalid username/password | 密码错或账户锁 | 重置密码或解锁用户 | | Could not initialize OCI | 找客户端库 | 检查 PATH 和 Instant Client 版本匹配 | --- ### ✅ 推荐替代方案(无需配置客户端) 如果你觉得太复杂,可以改用: #### 👉 **Oracle SQL Developer**(免费官方工具) - 由 Java 编写,自带 JDBC 驱动 - 需要安装 Oracle Client - 直接通过 JDBC 连接:输入 IP、端口、服务名、用户名密码即可 下载地址: [https://www.oracle.com/tools/downloads/sqldev-downloads.html](https://www.oracle.com/tools/downloads/sqldev-downloads.html) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值