我们在使用rust-oracle crate连接oracle进行测试的过程中,会发现无法连接oracle,测试运行过程中抛出“DPI-1047: Cannot locate a 64-bit Oracle Client library”错误。该问题是由于rust-oracle需要用到oracle的动态连接库,我们通过安装oracle light client解决该问题。
一、概述
ODPI-C需要相应的Oracle Client library,我们陈列下官网的说明:
二、问题解决
2.1,下载oracle client
我们是windows操作系统,我们根据官网的安装指示,下载对应的client包。
我本地visual studio为2022,我下载的客户端就为23版本的,下载地址为:Instant Client for Microsoft Windows (x64) 64-bit
2.2、安装oracle client
我们把下载的oracle客户端解压,放到指定的目录下面,我本地为:D:\databaseSoft\instantclient_23_6
2.3,配置环境变量
我们配置环境变量,让安装的oracle客户端可以识别到:
加入到path:
2.4,配置数据库连接服务串
我们在oracle目录的network/admin目录下新增tnsname.ora文件,配置如下连接串:
ORCL128 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.128)(PORT=1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
三,运行脚本测试
数据库的连接脚本如下:
let conn = match Connection::connect("tpc", "tpc", "ORCL128")。。。。。。
运行测试结果: