DPI-1047: невозможно найти 64-битную Oracle клиентскую библиотеку из nodejs кода - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь установить sh простое соединение с базой данных для запуска запроса sql из приложения экспресс / узла, и когда я достигаю своей конечной точки, я вижу следующую ошибку:

message:"DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html#windows for help\nNode-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html\nYou must have 64-bit Oracle client libraries in your PATH environment variable.\nIf you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from\nhttp://www.oracle.com/technetwork/topics/winx64soft-089540.html\nA Microsoft Visual Studio Redistributable suitable for your Oracle client library version must be available.

Все, что я делаю из своего кода, это

result = connection.execute(sql); 

Я создал маленькое маленькое express приложение и пытаюсь вызвать URL на http://localhost: 3000 / url который делает простой выбор * из таблицы запроса. Я не уверен, зачем мне нужна установка Oracle. Вот мой полный код:

var express = require("express");
var expressapp = express();
var oracledb = require('oracledb');
var dbConfig = require('./dbconfig.js');

expressapp.listen(3000, () => {
    console.log("Server running on port 3000");
});

expressapp.get("/url", (req, res, next) => {

let connection, result, sql;

sql = `SELECT * FROM user_table WHERE FNAME = 'TEST'`;
binds = {};

// For a complete list of options see the documentation.
options = {
  outFormat: oracledb.OUT_FORMAT_OBJECT   // query result format
  // extendedMetaData: true,   // get extra metadata
  // fetchArraySize: 100       // internal buffer allocation size for tuning
};

connection = oracledb.getConnection({
    user          : "xxxxx",
    password      : "xxxxx",
    connectString : "xxxxxxxxxxxxxxx"
  });

result = connection.execute(sql);
console.log("Response: ");
console.log(result);

res.json(result);
}); 

1 Ответ

2 голосов
/ 23 апреля 2020

Для драйвера oracle 'oracledb' ( node-oracledb ) требуется Oracle клиент для подключения к базе данных.

Вы можете найти Oracle клиент на https://www.oracle.com/database/technologies/instant-client.html

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