gpt4 book ai didi

node.js - ExecuteMany 插入错误值

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:41 24 4
gpt4 key购买 nike

我正在使用 oracledb (4.0.1) 和 Node (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,
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中。下面是我调用该函数的方式;

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 列数据类型为数字

最佳答案

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

关于node.js - ExecuteMany 插入错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58689966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com