记一次大坑,express+oracledb使用like语句时的问题

封面与文无关,是本人在大学做公交线路查询系统课设所画的路线图,废话不多说,进入正文

在使用like语句时,直接在spl语句中输入 ‘%:[变量名]’ 会报错,如下图

let searchGood = async function searchGood (goodname) {
  let conn

  try {
    conn = await oracledb.getConnection(config)

    const result = await conn.execute(
      "select gid,image,title,price from goods where title like '%:name%' ",
      [goodname]
    )
    // console.log(1)
    // console.log(result.rows[0])
    return result
  } catch (err) {
    console.log(2)
    console.log('Ouch!', err)
  } finally {
    if (conn) { // conn assignment worked, need to close
      await conn.close()
    }
  }
}

百思不得其解,一遍遍控制变量看哪些字符冲突了,查了很多资料都没有解决办法,本人使用的技术栈实在是太冷门了可能,哈哈哈哈哈

最后发现是%和:这两个字符冲突了,遂修改原始变量将%字符嵌入其中,如下图,就没问题了基本

let searchGood = async function searchGood (goodname) {
  let conn

  let a='%'+goodname+'%'

  try {
    conn = await oracledb.getConnection(config)

    const result = await conn.execute(
      "select gid,image,title,price from goods where title like :name ",
      [a]
    )
    // console.log(1)
    // console.log(result.rows[0])
    return result
  } catch (err) {
    console.log(2)
    console.log('Ouch!', err)
  } finally {
    if (conn) { // conn assignment worked, need to close
      await conn.close()
    }
  }
}

 

新人博主,会将开发中遇到的问题记录下来,如有帮助烦劳各位大佬三连支持,谢谢浏览~ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值