【问题标题】:How to use binding without using raw() method?如何在不使用 raw() 方法的情况下使用绑定?
【发布时间】:2019-07-31 14:09:31
【问题描述】:

我是 knexjs 的新手。

Knexjs:使用 raw() 绑定效果很好。是否可以在不使用 raw() 方法的情况下将绑定与 SQL builder 一起使用?

谢谢!

【问题讨论】:

  • 你能举个例子说明你是如何使用 raw 的吗?
  • knex.raw(insert into logger (LOG_NAME, TRAN_DATE, TRAN_TYPE, LOG_DETAIL, UID) select ?, SYSDATE, ?, ?, ? from sys.dual, [logName, tranType, JSON.stringify(logData), uid]) .then()
  • 您能否编辑您的问题以包含minimal, reproducible example

标签: javascript oracle knex.js objection.js


【解决方案1】:

没有。您需要使用knex.raw(),但您不必将所有查询编写为单个原始查询。您只能像这样原始查询的一部分:

  knex('table').where(knex.raw('lower(??)', ['firstName']), 'mikael')

【讨论】:

  • 和有什么区别??和 ?对于绑定变量?
  • ?? 是标识符替换,用于以区分大小写的方式正确引用TableName.columnName 等标识符。因此,这些替换将直接呈现给设置为要执行的驱动程序的 SQL 字符串。 ? 用于值文字。
猜你喜欢
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
相关资源
最近更新 更多