它对我有用。例如:
/*
drop table users;
create table users (u_name varchar2(20), u_town varchar2(20));
insert into users values ( 'khaled', 'Paris' );
insert into users values ( 'ivan', 'Madrid' );
commit;
select * from users;
*/
const oracledb = require('oracledb');
const dbConfig = require('./dbconfig.js');
if (process.platform === 'darwin') {
oracledb.initOracleClient({libDir: process.env.HOME + '/Downloads/instantclient_19_8'});
}
async function run() {
let connection;
try {
connection = await oracledb.getConnection(dbConfig);
const res = await connection.execute(`select * from users`);
console.log(res.rows); // [ [ 'khaled', 'Paris' ], [ 'ivan', 'Madrid' ] ]
const data =[
[ 'khaled', 'Paris' ],
[ 'ivan', 'Madrid' ]
];
const options = {autoCommit:true, dmlRowCounts: true, batchErrors: true};
const sql = 'DELETE FROM USERS WHERE u_name= :1 and u_town = :2';
const res1 = await connection.executeMany(sql,data,options);
console.log(res1); // { rowsAffected: 2, dmlRowCounts: [ 1, 1 ] }
const res2 = await connection.execute(`select * from users`);
console.log(res2.rows); // []
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
run();
输出是:
[ [ 'khaled', 'Paris' ], [ 'ivan', 'Madrid' ] ]
{ rowsAffected: 2, dmlRowCounts: [ 1, 1 ] }
[]
在 SQL*Plus 中:
SQL> select * from users;
no rows selected