您好,我有以下使用node-oracle执行的语句
await connection.execute(`SELECT * FROM TABLE WHERE NAME LIKE '%And%'`)但是现在我想要绑定一个参数,而不是使用硬编码的值
const queryText = 'And';
await connection.execute(`SELECT * FROM TABLE WHERE NAME LIKE '%:queryText%'`, {queryText});它抛出Error: ORA-01036: illegal variable name/number
在这里绑定参数的正确方式是什么,因为文档没有介绍这种情况?
发布于 2020-11-02 19:56:17
尝试执行以下操作:
const queryText = 'And';
await connection.execute(
"SELECT * FROM TABLE WHERE NAME LIKE :queryText",
{
queryText: { dir: oracledb.BIND_IN, val: '%'+ queryText +'%', type: oracledb.STRING }
});发布于 2020-11-02 19:41:54
使用字符串连接:
SELECT * FROM TABLE WHERE NAME LIKE '%' || :queryText || '%'发布于 2021-02-08 08:50:11
下面是一个有效的示例。
let queryText = "John"
let sql = "SELECT * FROM TABLE WHERE NAME LIKE :queryText"
let binds = {queryTarget: {dir: oracledb.BIND_IN, val: queryText, type: oracledb.STRING}}
let result = await connection.execute(sql, binds, options)不要像其他人建议的那样添加'%‘。
https://stackoverflow.com/questions/64644899
复制相似问题