Ошибка ORA-12162 при подключении Node.js к базе данных Oracle - PullRequest
0 голосов
/ 28 июня 2019

Я использую 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);

У кого-нибудь есть понимание того, почему я получаю эту ошибку? Любые решения, которые я нашел в Интернете, не помогли.

Спасибо!

1 Ответ

0 голосов
/ 28 июня 2019

В вашем конфигурационном модуле вы называете это connectionString.Но в файле database.js вы ссылаетесь на connectString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...