jdbc查询oracle中的char字段的问题

本文介绍了一种在使用Hibernate 3.0进行Oracle数据库查询时遇到的问题及解决方案。作者通过直接使用JDBC查询来避免实体关联导致的依赖问题,并解决了char类型字段查询不到数据的bug。

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

最近写一个查询,因为要用到其他组件中的表,去做一个查询,不想去关联他的实体(这样可能造成依赖,在打包时出现问题),于是决定用jdbc来做查询,hibernate版本为3.0,查询了两个字段select p.url,p.state from PTM p where p.billId=?其中url为varchar,state为char(2),测试程序总是通不过,DEBUG时发现state的值只有1位,类型为Character,转为String之后,还是一位,很郁闷,在网上搜索了一下,发现有说char类型字段在作条件时查不到数据的问题,说这是OracleJDBC驱动的一个bug,要用trim一下,然后塞入条件,就可以查询到要用的数据。[quote]eg:如果上边要用state作条件的话,应该这么写:select * from PTM p where trim(p.state)='01'[/quote]
于是把上边的查询改为select p.url,trim(p.state) from PTM p where p.billId=?测试一跑,通过了,很高兴。呵呵!写一下如果有人遇到可以看看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值