Bootstrap

rust中解决DPI-1047: Cannot locate a 64-bit Oracle Client library问题

    我们在使用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")。。。。。。

     运行测试结果:

;