【发布时间】:2019-01-04 11:09:42
【问题描述】:
尝试使用 knex.js 执行程序时出错
代码:
var procedureName = 'TEST_SCHEMA.TEST_PRC';
var bindingsParamString = '?, ?';
var bindingsParamValueStringArray = [
{ type: oracledb.NUMBER, dir: oracledb.BIND_IN,val:5},
{ type: oracledb.DATE, dir: oracledb.BIND_OUT },
];
var rawQuery= 'BEGIN ' + procedureName + ' ( ' + bindingsParamString +' )
END;';
knex.raw(rawQuery, bindingsParamValueStringArray)
.then(data => {done(null, data);})
.catch(err => {done(err);});
得到类似的错误
错误:TypeError: BEGIN TEST_SCHEMA.TEST_PRC(:1, :2); 结尾; - 期望一个数组或一个可迭代对象,但得到 [object Null]
在 git 中也找到了一个线程 https://github.com/tgriesser/knex/issues/1901,但没有提供解决方案。请帮忙
【问题讨论】:
-
似乎 Knex.js 中有一个长期存在的问题需要解决。同时,为什么不直接使用驱动呢?
-
谢谢 你说的是oracle驱动吗?我在图书馆里有一个 tweek,它现在正在工作。可能需要使用某种包装器
-
看起来没有人足够关心这个功能,以至于实际上在 knex (0.16) 中添加了对它的支持。也许有一天有人会发送拉请求来支持它。我很乐意合并它:)
-
我在这里使用相同 if (obj.method == 'raw') { return resolver({ response : outBinds }); } 及其工作,但不是正确的方法