oracle数据库中CHAR类型数据为什么加引号不加引号都能查询?
selectcount(*)numfromACCOUNT_LOGIN_STATtwhere1=1andlogin_auth_flag=1;selectcount(*)nu...
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and login_auth_flag = 1 ;
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and login_auth_flag = '1';
上面两个SQL在PL/SQL中都能查询,但是在JAVA代码调用的时候,第二个SQL就查询不到值,第一个可以查询到值。数据层是ibatis 展开
and login_auth_flag = 1 ;
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and login_auth_flag = '1';
上面两个SQL在PL/SQL中都能查询,但是在JAVA代码调用的时候,第二个SQL就查询不到值,第一个可以查询到值。数据层是ibatis 展开
展开全部
char类型是固定长度的字符型,也就是譬如你设置的char(4)
当你这个字段里是1,它会在后边补空格的,这个当然不仔细看是看不出来的
所以你第二个写法要查的时候加个函数吧
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and trim(login_auth_flag) = '1';
这样应该就可以了
当你这个字段里是1,它会在后边补空格的,这个当然不仔细看是看不出来的
所以你第二个写法要查的时候加个函数吧
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and trim(login_auth_flag) = '1';
这样应该就可以了
追问
select count(*) num from ACCOUNT_LOGIN_STAT t where 1=1
and trim(login_auth_flag) = '1';
在代码中这样写查不出数据,如果能查出数据,我就不觉得奇怪了,原来bean中该对象的值是String,传到后台查询不到值,后来我将该bean的值改成下面的代码才查询出值。
paramList.add(new DataParam("loginAuthFlag", DataType.INT,
Integer.parseInt(accountLoginInfoBean.getLoginAuthFlag())));
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询