npm install oracledb
如果数据库位于远程计算机上,请执行以下步骤。其他条件请见https://oracle.github.io/node-oracledb/INSTALL.html#quickstart
1.从Oracle Technology Network下载免费的64位Instant Client Basic ZIP文件 。(32位Instant Client在 这里)。
提取 instantclient-basic-windows.x64-18.3.0.0.0dbru.zip
将其目录添加到PATH
。例如,在Windows 7上,PATH
在控制面板中更新 - >系统 - >高级系统设置 - >高级 - >环境变量 - >系统变量 - > PATH
并添加您的路径,例如C:\oracle\instantclient_18_3
。
如果安装了多个版本的Oracle库,请确保在PATH
运行Node.js之前首先出现所需的版本。
或者,将解压缩的Instant Client文件移动到这里, node_modules\oracledb\build\Release
以便DLL和其他文件与oracledb.node
二进制文件位于同一目录中。如果这样做,则PATH
不需要设置。
2.(可选)创建默认的Oracle Client配置目录
如果您打算同定位可选的Oracle配置文件,如 tnsnames.ora
,sqlnet.ora
,ldap.ora
,或 oraaccess.xml
与即时客户端,可以将它们放在一个 C:\oracle\instantclient_18_3\network\admin
子目录中。如果需要,创建它。
这是使用此Instant Client的应用程序的默认Oracle配置目录。
或者,配置文件可以放在另一个目录中。然后将环境变量TNS_ADMIN
设置为该目录名称。
3.安装Visual Studio Redistributables
该PATH
变量需要包括相应的VS再分发:
还可以找到查找库OCI.DLL
并运行所需的版本 :
dumpbin /dependents oci.dll
如果看到,MSVCR120.dll
则需要VS 2013 Redistributable。如果看到,MSVCR100.dll
则需要VS 2010 Redistributable。如果你看到MSVCR80.dll
那么你需要VS 2005 Redistributable。
var oracledb = require('oracledb');
var query = function(sql,callback){
oracledb.getConnection(
{
user : "xxx",
password : "xxx",
connectString : "x.x.x.x:11000/xxx"
},
function (err, connection)
{
if (err)
{
console.error(err.message);
return;
}/*else{
console.log("连接成功");
}*/
connection.execute(sql, [], function (err, result)
{
if (err)
{
console.error(err.message);
doRelease(connection);
return;
}
//console.log(result.metaData);
callback(result.rows.map((v)=>
{
return result.metaData.reduce((p, key, i)=>
{
p[key.name] = v[i];
return p;
}, {})
}));
doRelease(connection);
});
}
);
}
function doRelease(connection) {
connection.close(
function(err) {
if (err)
console.error(err.message);
});
}
exports.query = query;
var db = require('./db');
db.query("SELECT count(*) count FROM X",function(result){
console.log("查询数量:"+result[0].count)
})