Я использую 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,
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 в БД. Вот как я вызываю эту функцию ниже:
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 неправильно. Вот как это выглядит на БД внизу;
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 столбец Тип данных Число .