当前位置:  开发笔记 > 编程语言 > 正文

使用节点oracle-db npm packagae时出现ORA-12514错误

如何解决《使用节点oracle-dbnpmpackagae时出现ORA-12514错误》经验,为你挑选了1个好方法。

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

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时,出现以下错误

ORA-12154: TNS:could not resolve the connect identifier specified

我正在使用的节点版本是,v7.0.0而npm版本是v3.10.8。我的oracle数据库也是11g云上的一个实例。有人可以让我知道我在做什么错吗?



1> Sam Stephens..:

看来您的connectString是错误的,根据文档显示它只是主机名:端口/ sid

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(关于该问题)将是:

oracledb.getConnection(
 {
   user          : "hr",
   password      : "welcome",
   connectString : "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = port))(CONNECT_DATA =(SID= sid)))"
 })

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有