使用node-oracledb executeMany

我想从nodejs项目上的oracle db中删除多行。 我在节点(v10.14.2)中使用oracledb(4.0.1)

我在执行操作时遇到这样的错误; {"level":50,"time":1573197878989,"msg":"Failed: Error: DPI-1050: Oracle Client library is at version 11.2 but must be at version 12.1 or higher Case: ora.deleteMany","pid":11092,"hostname":"***","v":1} 根据该错误,它声称是Oracle Client问题。但是我的Oracle Client已经是 12.2.0.1.0

我可以在当前项目上成功使用SELECTUPDATE查询,而不会出现任何错误。现在我想在发生错误时使用DELETE查询。

我将在下面解释我的代码。

这些是ID,我想从表中删除。 [ { ID: 11865 },{ ID: 23249 } ] 我通过使用SELECT查询生成了json列表。它告诉我要删除的ID作为json列表。

const getTodayDailyDiff = async config => {
  let test = [];
  const today = new Date().toISOString().split('T')[0];
  let connection;
  try {
    connection = await oracledb.getconnection(config);
    test = await connection.execute(
      `
    (SELECT ID FROM TNT.DAILY_DIFF
      WHERE TO_CHAR(DIFF_DATE,'YYYY-MM-DD') = :today)
      `,[today]
    );
  } catch (err) {
    log.error(err,'ora.diffReport');
  } finally {
    if (connection) {
      connection.close();
    }
  }
  return test;
};

然后我将该json列表(getTodayDailyDiff.rows)发送到我的DELETE查询。

const deleteMany = async (config,getTodayDailyDiff.rows) => {
  let test = [];
  let connection;
  const sql = `DELETE FROM DAILY_DIFF WHERE ID = :ID`;
  const options = {
    dmlRowCounts: true,autoCommit: true
  };
  try {
    connection = await oracledb.getconnection(config);
    test = await connection.executeMany(sql,getTodayDailyDiff.rows,options);
  } catch (err) {
    log.error(err,'ora.deleteMany');
  } finally {
    if (connection) {
      connection.close();
    }
  }
  return test;
};
jscj4567 回答:使用node-oracledb executeMany

我知道这不能解决客户问题,但是也许更好的解决方案是合并这两个调用并为您节省访问数据库的时间。

import textract

text = textract.process("path/to/file.extension")
text = text.decode("utf-8") 
本文链接:https://www.f2er.com/3139464.html

大家都在问