首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用节点oracle-db npm包时的ORA-12514错误

使用节点oracle-db npm包时的ORA-12514错误
EN

Stack Overflow用户
提问于 2017-01-16 17:18:13
回答 1查看 4.4K关注 0票数 3

目前,我正在做一个项目,它要求后端在oracle中完成。我使用给定的链接并在我的mac上使用npm安装了节点-oracledb。我的文件内容如下

代码语言:javascript
复制
var oracledb = require('oracledb');

oracledb.getConnection(
{
user          : 'username',
password      : 'password',
connectString : 'username/password//hostname:port/sid'
function(err, connection)
{
if (err) {
  console.error(err.message);
  return;
}else{
    connection.execute(
  "SELECT * from TableName",
  function(err, result)
  {
    if (err) { console.error(err); return; }
    console.log(result.rows);
  });
 }
});

当我运行节点filename.js时,会得到以下错误

代码语言:javascript
复制
ORA-12154: TNS:could not resolve the connect identifier specified

我使用的是节点版本是v7.0.0,npm版本是v3.10.8。另外,我的oracle数据库是云中的一个11g实例。有人能告诉我我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 17:32:31

看起来您的connectString是错误的,根据文档,它只是主机名:port/sid

代码语言:javascript
复制
var oracledb = require('oracledb');

oracledb.getConnection(
  {
    user          : "hr",
    password      : "welcome",
    connectString : "hostname:port/sid"
  })
  .then(function(conn) {
    return conn.execute(
      "SELECT department_id, department_name " +
        "FROM departments " +
        "WHERE manager_id < :id",
      [110]  // bind value for :id
    )
      .then(function(result) {
        console.log(result.rows);
        return conn.close();
      })
      .catch(function(err) {
        console.error(err);
        return conn.close();
      });
  })
  .catch(function(err) {
    console.error(err);
  });

编辑:

至少在2019年7月(可能在7月之前),connectString : "hostname:port/sid"不再使用oracledb打印错误:ORA-12514: TNS:listener does not currently know of service requested in connect descriptor,正如找到的这里一样,您可以将connectString设置为(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = YOUR_HOST)(PORT = YOUR_PORT))(CONNECT_DATA =(SID= YOUR_SID)))以使用SID连接到数据库。

因此,更新的getConnection (关于这个问题)将是:

代码语言:javascript
复制
oracledb.getConnection(
 {
   user          : "hr",
   password      : "welcome",
   connectString : "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = port))(CONNECT_DATA =(SID= sid)))"
 })
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41681688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档