oracle补齐字段,Oracle中CHAR类型自动补足空格的问题

Oracle中CHAR类型自动补足空格的问题以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

dada798728c87a59a7374ce5c6153c38.png

在ORACLE中 CHAR类型的字段值会自动补足空格 所以当其作为条件时 就有可能查不出想要的数据

如果不允许改DB设计的话 那就用RTRIM来解决吧 例

DB

CREATE TABLE TEST(    TEST_ID                        VARCHAR ( ) NOT NULL     TEST_CHAR                      CHAR( )     CONSTRAINT TEST_ID PRIMARY KEY (TEST_ID));INSERT INTO TEST VALUES( a );

测试代码

Session session = factory getCurrentSession();session beginTransaction();List list = session createQuery( FROM Test WHERE RTRIM(TEST_CHAR) =  a ) list();session close();assertTrue(list size() >  );

输出结果(ORACLE)

Hibernate:     select        test _ TEST_ID as TEST _ _         test _ TEST_CHAR as TEST _ _     from        TEST test _     where        rtrim(TEST_CHAR)= a : : DEBUG StringType:    returning   as column: TEST _ _ : : DEBUG StringType:    returning  a           as column: TEST _ _

而MySQL不会自动补足空格 同样的代码也是可以适用的 输出结果(MySQL) lishixinzhi/Article/program/Oracle/201311/17762

分页:123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值