由于客户端的应用程序需要连接Oracle数据库,但客户端不可能全部安装OracleClient,所以需要制作一个精简版的客户端,网上有相当多的资料,收集了Oracle8i(3.7M)和Oracle9i(14M)的精简版的客户端程序,但是从 http://www.oracle.com.cn 可以知道,Oracel的数据库产品都是向下兼容两个版本,故,Oracle8i的客户端程序,实际上可以连接Oracle9i(项目中已验证)和Oracle10g两种数据库服务器.
现在简述一下具体的制作方法:
(1)提取文件
(2)修改注册表
(3)打包
(1)提取文件:
对于Oracle8i的客户端,需要一下文件:
BIN/目录下的:Nmsp.dll, OCI.DLL, oracle.key, ORACLIENT8.DLL, ORACOMMON8.DLL, ORACORE8.DLL, ORAGENERIC8.DLL, oraldapclnt8.dll, ORAN8.DLL, ORANCRYPT8.DLL, ORANHOST8.DLL, ORANL8.DLL, ORANLDAP8.DLL, ORANLS8.DLL, ORANNDS8.DLL, orannms8.dll, ORANONAME8.DLL,ORANRO8.DLL,ORANTCP8.DLL, ORANTNS8.DLL, ORAPLS8.DLL,ORASLAX8.dll,ORASQL8.DLL, ORATRACE8.DLL 一共24个文件(网上有一种29个文件的版本的,其实可以精简到24个文件,还能不能继续精简,有待进一步测试)
NETWORK/ADMIN/目录下的tnsnames.ora,这个文件安装好之后要根据实际的工作环境进行重新配置下面是这个文件的例子:
ZLDFDB = //数据库名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.100.3)(PORT = 1521)) //主机,端口
)
(CONNECT_DATA = (SERVICE_NAME = zldfdb.com))
)
OCOMMON/NLS/Admin/DATA/下面的:LX00001.NLB, LX1BOOT.NLB, LX00023.NLB, LX10001.NLB, LX10035.NLB, LX20001.NLB, LX20354.NLB, LX60354.NLB
(2)修改注册表
按照BIN/目录下面的oracle.key文件中的注册表目录,建立注册表项:
如:oracle.key的文件为:Software/ORACLE/HOME0
那么我们应该在注册表建立如下项
HLM/Software/Oracle/HOME0
在HOME0内新建字符串:
ORACLE_HOME_KEY = Software/ORACLE/HOME0
ORACLE_HOME = BIN文件夹所在的目录
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(3)打包的时候客户端的应用程序一定要放在BIN/目录下面,要不然无法加载oci.dll,需要设置系统Path变量
还有就是注册表 ORACLE_HOME的值设置为: [TARGETDIR]
这样精简版的客户端程序就制作完成了.
对于Oracle9i的客户端,需要以下文件oci.dll, oraclient9.dll, oracommon9.dll, ORACORE9.DLL, orageneric9.dll, oraldapclnt9.dll, oran9.dll, ORANCDS9.DLL, orancrypt9.dll, oranhost9.dll, oranl9.dll, oranldap9.dll, ORANLS9.DLL, oranms.dll, oranmsp.dll, orannts9.dll, orannzsbb9.dll, oranoname9.dll, oranro9.dll, orantcp9.dll, orantns9.dll, ORAPLS9.DLL, ORASLAX9.DLL, ORASNLS9.DLL, ORASQL9.DLL, oratrace9.dll, ORAUNLS9.DLL, oravsn9.dll, orawtc9.dll,一共29个文件
其他设置和上面的一样,不过我没有验证过.