SQL数据源传中文参数

6628
4

Carson 小试身手Lv3

发表于2018-7-3 11:12

悬赏1

已解决

楼主
在定义了SQL数据源之后,怎么样把中文的参数传到SQL里面呢?
where T1.KMMCHZ = <#=@fylx#>
像这段当中传中文参数是有问题的
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'ä¸šåŠ¡å®£ä¼ è´¹' in 'where clause'
        at sun.reflect.GeneratedConstructorAccessor196.newInstance(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_80]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_80]
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) ~[mysql-connector-java-5.1.5.jar:na]

应该是中文当中的引号没有传进去。
直接给这个参数:\'业务宣传费\'   这样子也是不行
你看有什么好的传中文参数的方案没?

最近看过此主题的会员

wxw

doubao

silentx

淑离

玊尔666

萧涤

18757335670

Shirley

槐序

15350939

liulei6511

v笑向前走

lidevip

Alin_sir

fuys

esen_43MZ4VYW213F

天晴放羊

最佳答案
附上测试案例sql数据源的写法
select * from permisson where login_dept_id = '<#=substitute(@sql111,"'","''")#>'
4个回答

只看楼主

混乱七星天 数据达人Lv4

发表于2018-7-3 12:23

只看该作者

取消 关注该作者的回复

沙发

这个应该是数据库里面本身就对单引号这种无法识别的
我本地用oralce测试了一下,oracle中字符本身需要用单引号识别,但是数据库字段的值又包含单引号,这个时候只能将数据库里面的值转换成两个单引号才能识别,您看看我这个测试案例



混乱七星天 数据达人Lv4

发表于2018-7-3 11:12

只看该作者

取消 关注该作者的回复

板凳

附上测试案例sql数据源的写法
select * from permisson where login_dept_id = '<#=substitute(@sql111,"'","''")#>'

Carson 小试身手Lv3

发表于2018-7-3 14:38

只看该作者

取消 关注该作者的回复

地板

已解决!

混乱七星天 数据达人Lv4

发表于2018-7-3 14:42

只看该作者

取消 关注该作者的回复

5#


厉害哦,棒棒哒

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号