乐趣区

关于数据库:使用nodejs中的nodeoracledb连接虚拟机上的oracle数据库

作者须要应用 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/1zOai…
    提取码: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,运行胜利之后就能够不必管了。

解压 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 官网文档

退出移动版