首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecuteMany插入错误的值

ExecuteMany插入错误的值
EN

Stack Overflow用户
提问于 2019-11-04 08:56:53
回答 1查看 345关注 0票数 1

我使用oracledb (4.0.1)和节点(v10.14.2)。我下面有json列表;

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

通过oracledb executeMany方法,我将把那个json列表插入到db。下面是我怎么称呼这个函数的。

代码语言:javascript
复制
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上的样子;

代码语言:javascript
复制
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方法,它记录正确。

代码语言:javascript
复制
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|

百分比列数据类型是编号

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 15:09:45

JavaScript还没有适当的十进制支持。将JavaScript中的数字转换为字符串以避免转换错误。然后将数据库中的字符串转换为Oracle编号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58689966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档