作者需要使用electron写一个桌面应用程序,需要用到oracle数据库,oracle在虚拟机中已经配好了,oracle的版本是oracle10g,之后需要在本机上连接oracle,可以使用node-oracledb连接,下面就是作者连接oracle的过程。

下载连接所需要的配置

连接oracle需要用到两个东西

  • Visual Studio 2013 Redistributable 用于预构建 node-oracledb 二进制文件
  • Oracle Instant Client,oracle客户端,有了这个才能连接oracle
    由于去官网下载需要登录,没有账号的话,注册会等很久,所以可以直接提取。
    链接:https://pan.baidu.com/s/1zOaitTapFilVE32AOA_r4A
    提取码:5sz1

这里引用node-oracledb官网中的一段话

Oracle 的标准客户端-服务器网络互操作性允许不同版本的 Oracle 客户端和 Oracle 数据库之间的连接。有关支持的配置,请参阅 Oracle 支持的文档 ID 207303.1。总之,Oracle Client 21 可以连接到 Oracle Database 12.1 或更高版本。Oracle Client 19、18 和 12.2 可以连接到 Oracle Database 11.2 或更高版本。Oracle Client 12.1 可以连接到 Oracle Database 10.2 或更高版本。Oracle Client 11.2 可以连接到 Oracle Database 9.2 或更高版本。创建连接的技术限制可能更灵活。例如,Oracle Client 21 可以成功连接到 Oracle Database 11.2,而 Oracle Client 12.2 可以成功连接到 Oracle Database 10.2。
在这里插入图片描述

所以作者这里下载的是Visual Studio 2013 Redistributableoracle client 12.2.0.1.0
Visual Studio 2013 Redistributable 下载 Chinese - China
oracle client 12.2.0.1.0到百度云盘提取
在这里插入图片描述

双击运行下载好的 Visual Studio 2013 Redistributable,运行成功之后就可以不用管了。
在这里插入图片描述
解压 oracle client 12.2.0.1.0,然后将文件放在一个可访问目录。

测试连接

自己创建一个node的测试demo

var oracledb = require('oracledb');
try {
    oracledb.initOracleClient({ libDir: 'E:\\instantclient-basic-windows.x64-12.2.0.1.0\\instantclient_12_2' });  
    // 这里的位置是oracle client 12.2.0.1.0解压后保存的位置
} catch (err) {
    console.error('Whoops!');
    console.error(err);
    process.exit(1);
}
oracledb.getConnection({
    connectString: "虚拟机ip地址/数据库名称", 
    user: "用户名",
    password: "密码"
},async function (err, connection) {
    if (err) {
        console.error('error:', err.message);
    } else {
        console.log("连接成功");
        try {
            const res = await connection.execute('select * from table');
            console.log('res:', res);
        } catch (e) {
            console.log('查询失败!');
        }
    }
});

如果安装的oracle的版本或者其他的东西和作者的不一样,可以去官网看看。
node-oracledb官方文档

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐