【问题标题】:Getting error while executing procedure using knex js使用knex js执行程序时出错
【发布时间】: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 }); } 及其工作,但不是正确的方法

标签: node.js oracle knex.js


【解决方案1】:

我用的也是这个

if (obj.method == 'raw') {
    return resolver({
      response: outBinds
    });
  }

及其工作但不是正确的方法

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多