我正在尝试从表单中提取数据并将其插入 Oracle 数据库,但返回错误:
NJS-012:在参数 2 中遇到无效的绑定数据类型
编码:
module.exports = function(app, db) {
app.post('/newInput', function(req, res) {
var insert = "INSERT INTO KFEDOROV.ISSUES_TABLE VALUES ('"+
req.body.reqNo+
"', '"+
req.body.entity+
"', '"+
req.body.userId+
"', '"+
req.body.newValue+
"', '"+
req.body.userId+
"', '"+
req.body.userOrgUai+
"', 'NEW','"+
req.body.oldValue+
"');";
oracledb.getConnection(
{
user: 'user',
password: 'pass',
connectString: 'connection'
},
function (err, connection) {
if (err) {
console.error(err.message);
return;
}
connection.execute(insert, { autoCommit: true}, function(err, result) {
if (err) {
console.error(err.message);
doRelease(connection);
return;
} else {
console.log(result.rows);
doRelease(connection);
}
}
)
function doRelease(connection)
{
connection.close(
function(err) {
if (err)
console.error(err.message);
});
}
});
});
该文档
connection.execute指定了四个参数:当使用三个参数调用时,第二个参数被视为
bindParams绑定变量,这显然不在您的请求中。该错误与被autoCommit视为请求参数的内容有关。尝试显式指定一个空参数数组:
Z.Y. 我建议查看文档以获取使用查询参数的示例。您现在正在使用连接向查询添加值,这有很多原因是不可取的,例如:
bindParams,您可以不去想它。