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 ' 这个可以查出来
原因是
一个问题:怎么用hibernate查询语句去查询oracle中含有char类型的字段?
答:char是定长,所以存进数据库时如果位数不够的话会自己在后面补上空格。这时,我们在java里查询的时候从数据库里,要先用rtrim函数把右边的空格去掉。如果我们是在plsql里写语句的话它会自动帮我们把右边空格去掉。
如:select * from tab where rtrim(...) = ?
而用 select * from tab where factorType
= ' abc' 却检索不出来
而 select
* from tab where factorType = 'abc ' 这个可以查出来
原因是
CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。 当检索到CHAR值时,查询的值和被查询的值 尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。 |
答:char是定长,所以存进数据库时如果位数不够的话会自己在后面补上空格。这时,我们在java里查询的时候从数据库里,要先用rtrim函数把右边的空格去掉。如果我们是在plsql里写语句的话它会自动帮我们把右边空格去掉。
如:select * from tab where rtrim(...) = ?
相关文章推荐
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- oracle 的sql,查询时间为某年某月某日某时某分某秒等的记录,data或者TIMESTAMP(6)类型的字段
- oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息
- 在Struts中慎用oracle char类型的字段
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- Oracle中如何查询CLOB字段类型的内容
- oracle varchar 类型字段查询体会
- hibernate查询数据表char类型字段只返回一个字符
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- hibernate查询数据表char类型字段只返回一个字符
- SQLQuery 查询Oracle char类型返回一个字符有关问题
- mybatis使用char类型字段查询oracle数据库时结果返回null
- 如何在Oracle中查询Date类型字段的数据
- 数据库中的char类型的字段与number,varchar类型字段查询
- (jdbcType)mybatis 查询Oracle Date类型字段只精确到年月日
- 查询oracle表中的字段名和字段类型
- --查询Oracle表字段名称,类型,数据长度,注释的语句
- oracle cols 查询表字段类型及长度 function