ExecuteMany插入错误的值

我正在将oracledb(4.0.1)与节点(v10.14.2)一起使用。我下面有json列表;

[ { DIFFID: 8,DIFFDATE: 2019-11-01T14:04:41.831Z,REGIONNAMEA: 'TURKEY',VENDORA: 'XXX',SOURCECOUNT: 797,DIFFCOUNT: 8,PERCENTAGE: 99 },{ DIFFID: 8,REGIONNAMEA: 'GERMANY',SOURCECOUNT: 440,PERCENTAGE: 98.18 },REGIONNAMEA: 'FRANCE',SOURCECOUNT: 206,DIFFCOUNT: 5,PERCENTAGE: 97.57 } ]

通过oracledb executeMany方法,我将该json列表插入db。这是我在下面如何调用该函数的方法;

const saveManySla = async (config,jList) => {
  let test = [];
  let connection;
  try {
    connection = await oracledb.getconnection(config);
    test = await connection.executeMany(
      `
    INSERT INTO DAILY_DIFF_SLA 
      VALUES (SEQ_DAILY_DIFF_SLA.NEXTVAL,:DIFFID,:DIFFDATE,:REGIONNAMEA,:VENDORA,:SOURCECOUNT,:DIFFCOUNT,:PERCENTAGE)
      `,jList,{
        autoCommit: true
      }
    );
  } catch (err) {
    log.error(err,'ora.saveManySla');
  } finally {
    if (connection) {
      connection.close();
    }
  }
  return test;
};

在我第一次遇到这样的问题之前,通过多次使用该executeMany方法的方式。错误插入了json列表。这是下面的DB上的样子:

ID |DIFF_REPORT_ID|DIFF_DATE          |REGION        |VENDOR |SOURCE_COUNT|DIFF_COUNT|PERCENTAGE         |
---|--------------|-------------------|--------------|-------|------------|----------|-------------------|
139|             8|2019-11-04 11:09:12|TURKEY        |XXX    |         797|         8|                 99|
140|             8|2019-11-04 11:09:12|GERMANY       |XXX    |         440|         8|4636609220240232940|
141|             9|2019-11-04 11:09:13|FRANCE        |XXX    |         206|         5|              97.57|

如果我按“德国”过滤,我的json列表中只有一项。然后我使用executeMany方法记录正确。

ID |DIFF_REPORT_ID|DIFF_DATE          |REGION        |VENDOR |SOURCE_COUNT|DIFF_COUNT|PERCENTAGE         |
---|--------------|-------------------|--------------|-------|------------|----------|-------------------|
142|             8|2019-11-04 11:19:12|GERMANY       |XXX    |         440|         8|              98.18|

PERCENTAGE列的数据类型为数字

mhc994 回答:ExecuteMany插入错误的值

JavaScript尚无适当的十进制支持。将JavaScript中的数字转换为字符串,以避免转换错误。然后将字符串转换为数据库中的Oracle数字。

本文链接:https://www.f2er.com/3168077.html

大家都在问