今天遇到的奇葩问题

本文解决DB2数据库中使用GUID查询时遇到的特殊字符问题,并提供两种解决方案。此外,还介绍了一个常见的404 BadRequest错误案例,解释了如何通过调整参数设置来解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、DB2查询GUID:

select * from  pix where id like '2d5712d9-ced6-4810-aa4f-7365f2aba09%';

结果为:

sql换成:select * from  pix where id = '2d5712d9-ced6-4810-aa4f-7365f2aba098';查询结果为空。

代码中以“2d5712d9-ced6-4810-aa4f-7365f2aba09”作为条件,查出来结果为“2d5712d9-ced6-4810-aa4f-7365f2aba095

第一次碰到这样的奇葩问题:

后来找人帮忙才知道:id是从sqlServer传过来的,35位,中间可能通过程序处理,也有可能是DB2不支持这样的GUID,造成35位之后其实另外占用的1~3位,从数据库将“2d5712d9-ced6-4810-aa4f-7365f2aba098”复制出来变成这样子:

"2d5712d9-ced6-4810-aa4f-7365f2aba09?"

那个问号就占用了3位,所以用=是匹配不到的。

解决办法:

(1)更改程序逻辑,让其插入数据的时候就应该进行处理

(2)既然已经确定id传过来是35位,那sql这样写:select * from pix where substr(id,1,35) = '2d5712d9-ced6-4810-aa4f-7365f2aba09';

2、访问界面时总是提示404 Bad Request

找了半天,发现取service的参数的时候,属性设置成必须传,于是打断点的地方死活进不来

而我访问时url没有带service参数,所以将required设置成false即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值