向存储过程中传递的参数为SQL,且SQL语句中带有 like 语句时,单引号导致的报错

具体问题是:我的一个模板数据集是一个存储过程,然后向里面传递参数的形式,其中一个参数是SQL语句;例如exec [Proc_Example] '${sql}' ,'${name}'   这个参数sql是通过web端url传递过来的,sql中带有like,如 insert into student select * from studentInfo where number like '540101%',然后查看帆软的日志就会报错。报错信息为:“540101”附近有语法错误。

因为参数传递过来后,帆软日志打印的执行SQL语句为:exec [Proc_Example] 'inset into student select * from studentInfo where number like '540101%','jack''。我猜测是因为like语句的单引号和包裹参数的单引号产生了混乱,导致它在540101附近报错。

请教下各位大佬怎么解决!

FineReport zouren 发布于 2019-9-18 10:16 (编辑于 2019-9-18 14:00)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
doudekaixinLv6中级互助
发布于2019-9-18 10:23

数据集的代码截图看下。

  • zouren zouren(提问者) 大佬,上面添了两张图,你看看
    2019-09-18 13:47 
最佳回答
0
孙一Lv4见习互助
发布于2019-9-18 13:50

where number like ‘540101%’,'jack'   

like ‘540101%’ 里面的引号是中文的引号,要切换成英文的。

没明白后面的 ,'jack'    是要做什么?


  • zouren zouren(提问者) 大佬,不是这个问题,只是我在这编辑问题的时候不小心敲成中文的了;后面那个是我另一个参数,跟问题没啥关系
    2019-09-18 14:02 
最佳回答
0
冷枫逸Lv3见习互助
发布于2019-9-18 15:50

用的oracle还是mysql

最佳回答
0
henry_hooLv0见习互助
发布于2019-9-18 15:53

看截图好像是like语句后面少了一个空格

  • 5关注人数
  • 919浏览人数
  • 最后回答于:2019-9-18 15:53
    请选择关闭问题的原因
    确定 取消
    返回顶部