您的位置:首页 > 数据库 > Oracle

Oracle里查询char类型字段

2012-03-01 20:15 253 查看
字段 factorType char(10)将"abc" 存进去 ,用select * from tab wherefactorType = 'abc' 可以检索出数据

而用 select * from tab where factorType
= ' abc' 却检索不出来

而 select
* from tab where factorType = 'abc ' 这个可以查出来

原因是
CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。

当检索到CHAR值时,查询的值和被查询的值 尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。
一个问题:怎么用hibernate查询语句去查询oracle中含有char类型的字段?

答:char是定长,所以存进数据库时如果位数不够的话会自己在后面补上空格。这时,我们在java里查询的时候从数据库里,要先用rtrim函数把右边的空格去掉。如果我们是在plsql里写语句的话它会自动帮我们把右边空格去掉。

如:select * from tab where rtrim(...) = ?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: