You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js调用oracledb.getConnection报is not a function错误求助

问题原因

你安装的是oracledb v6.0及以上版本,该版本做了ESM适配,默认CommonJS require导入得到的对象不再直接挂载getConnection方法,所以会抛出该报错。

可用解决方案
  • 方案1:调整CommonJS导入写法,新增.default属性取值
    把代码中的const oracledb = require('oracledb');修改为const oracledb = require('oracledb').default;即可直接兼容原有调用逻辑。
  • 方案2:切换为ES Module导入写法
    如果你的项目支持ESM规范,可将导入语句改为import oracledb from 'oracledb';,原有调用逻辑不需要修改。
额外代码问题修正

你当前代码里的connection.execute同时使用了await和回调函数,二者功能重复,保留任意一种即可。同时建议新增连接释放逻辑避免连接泄漏,修正后的完整代码如下:

async tidInfoSubmitForm(){
  let connection;
  // 调整后的导入语句
  const oracledb = require('oracledb').default;
  const config = {
    user : 'XX',
    password : 'XX',
    connectString : "XXX"
  }
  try {
    connection = await oracledb.getConnection(config);
    // 仅保留await写法,去掉冗余回调
    const result = await connection.execute('Select * from table');
    console.log(result.rows);
  } catch (err) {
    alert(err)
    console.log('Error :' + err);
  } finally {
    // 新增连接释放逻辑
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(err);
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者Akhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:06:05