首页 > 解决方案 > 更新查询在 node-oracledb 模块中挂起

问题描述

我正在使用 node-oracledb ( 3.1.2 ) 模块。除更新查询外,一切正常。我能够触发选择、插入查询,但是当我尝试触发 upate 查询时,似乎查询被挂起(没有错误,没有结果)。我正在编写以下代码:

用于创建连接:

module.exports.createErpConnection = async () => {
   try {
       connection = await oracleDB.getConnection({
           user: constants.databaseCredentials.user,
           password: constants.databaseCredentials.password,
           connectString: `${constants.databaseCredentials.connectString}/${constants.databaseCredentials.databaseName}`
       });

       if (connection) {
           response.status = 1;
           response.connection = connection
       } else {
           response.status = 0;
           response.message = constants.databaseStatus.ERP_DATABASE_CONNECTION_NOT_ESTABLISHED
       }
   } catch (exception) {
       response.status = 0;
       response.message = exception;
   } finally {
       return response;
   }
};

触发更新查询:

async function updateProductStatInErp(connection) {
  let sql = `UPDATE product_master SET UPDATED_STAT='N'`;
  let options = {outFormat: oracledb.OBJECT, autoCommit: true};
  const res = await connection.connection.execute(sql, {}, options)
  // I am not getting either response nor error
}

我需要做任何额外的事情来触发更新查询吗?

标签: node.jsnode-oracledb

解决方案


我已经通过在 try 和 catch 块中编写执行语句解决了这个问题。这是代码:

 try {
      const res = await connection.connection.execute(sql, {}, options)
      console.log('======= 185 =======', res)
  } catch (exception) {
      console.log('====== 186 =====', exception)
    }
Result =>> ====== 185 ======= { rowsAffected: 490 }

推荐阅读