Я использую nodejs (работающий в экземпляре amazon EC2 с дистрибутивом Linux RHEL) с 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);
У кого-нибудь есть понимание того, почему я получаю эту ошибку? Любые решения, которые я нашел в Интернете, не помогли.
Спасибо!