使用node.js中的node-oracledb连接虚拟机上的oracle数据库

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

下载连接所需要的配置

连接oracle需要用到两个东西

这里引用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。

使用node.js中的node-oracledb连接虚拟机上的oracle数据库_第1张图片
所以作者这里下载的是Visual Studio 2013 Redistributableoracle client 12.2.0.1.0

使用node.js中的node-oracledb连接虚拟机上的oracle数据库_第2张图片

双击运行下载好的 Visual Studio 2013 Redistributable,运行成功之后就可以不用管了。

image.png

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

你可能感兴趣的:(数据库oracle)