连接 Node.js 到 Oracle 数据库时出现错误 ORA-12162
Error ORA-12162 when connecting Node.js to Oracle Database
我正在使用 nodejs(运行 在带有 RHEL linux 发行版的亚马逊 EC2 实例中)和 node-oracledb 尝试连接到外部 oracle 数据库。但是,每当我尝试建立连接时,我都会收到以下错误:
Error: ORA-12162: TNS:net service name is incorrectly specified
我已经能够使用 sqlplus(使用相同的连接字符串)、telnet 和 sqldeveloper 成功连接到数据库。
dbconfig.js
module.exports = {
username: 'placeholder username',
pw: 'placeholder pw',
connectionString: 'host:post/SID',
}
database.js
function simpleExecute(statement, binds = [], opts = {}) {
return new Promise(async (resolve, reject) => {
let conn;
opts.outFormat = oracledb.OBJECT;
opts.autoCommit = true;
try {
conn = await oracledb.getConnection({
user : dbConfig.username,
password : dbConfig.pw,
connectString : dbConfig.connectString
});
const result = await conn.execute(statement, binds, opts);
resolve(result);
} catch (err) {
reject(err);
} finally {
if (conn) { // conn assignment worked, need to close
try {
await conn.close();
} catch (err) {
console.log(err);
}
}
}
});
}
testdb.js
query = 'USER_ID FROM placeholder table WHERE EMAIL=:usr_id';
binds.usr_id = 'placeholder email';
result = await database.simpleExecute(query, binds);
有人知道我为什么会收到此错误吗?我在网上找到的任何解决方案都没有帮助。
谢谢!
在您的配置模块中,您将其命名为 connectionString
。但是在database.js中,你指的是connectString
.
我正在使用 nodejs(运行 在带有 RHEL linux 发行版的亚马逊 EC2 实例中)和 node-oracledb 尝试连接到外部 oracle 数据库。但是,每当我尝试建立连接时,我都会收到以下错误:
Error: ORA-12162: TNS:net service name is incorrectly specified
我已经能够使用 sqlplus(使用相同的连接字符串)、telnet 和 sqldeveloper 成功连接到数据库。
dbconfig.js
module.exports = {
username: 'placeholder username',
pw: 'placeholder pw',
connectionString: 'host:post/SID',
}
database.js
function simpleExecute(statement, binds = [], opts = {}) {
return new Promise(async (resolve, reject) => {
let conn;
opts.outFormat = oracledb.OBJECT;
opts.autoCommit = true;
try {
conn = await oracledb.getConnection({
user : dbConfig.username,
password : dbConfig.pw,
connectString : dbConfig.connectString
});
const result = await conn.execute(statement, binds, opts);
resolve(result);
} catch (err) {
reject(err);
} finally {
if (conn) { // conn assignment worked, need to close
try {
await conn.close();
} catch (err) {
console.log(err);
}
}
}
});
}
testdb.js
query = 'USER_ID FROM placeholder table WHERE EMAIL=:usr_id';
binds.usr_id = 'placeholder email';
result = await database.simpleExecute(query, binds);
有人知道我为什么会收到此错误吗?我在网上找到的任何解决方案都没有帮助。
谢谢!
在您的配置模块中,您将其命名为 connectionString
。但是在database.js中,你指的是connectString
.