如下一个SQL语句:
select t.id,t.name,'WSBZ' billtype form table t where ...
语句执行一切正常,只有一条记录,但是用rs.getString("billtype")时居然给我返回的是32个长度的字符串"WSBZ "
ORACLE9.2 + Weblogic,不知道有没有人遇到过?ORACLE不是在windows环境下,难道是编码问题?可是别的字段都没错啊。
select t.id,t.name,'WSBZ' billtype form table t where ...
语句执行一切正常,只有一条记录,但是用rs.getString("billtype")时居然给我返回的是32个长度的字符串"WSBZ "
ORACLE9.2 + Weblogic,不知道有没有人遇到过?ORACLE不是在windows环境下,难道是编码问题?可是别的字段都没错啊。
这个带红字的是什么意图?
select '男' as 性别 from ...
select t.* from t where t.xx like 'WSBZ';
select语句前面的部分是告诉数据库要获取的字段的名字,where字句后面的部分才加查询条件。
我本来要查的就是'WSBZ' billtype,这里的billtype就是固定的,这样我查询的结果就是下面的值1 值2 值3 WSBZ --- 某一行的值,只不过这里的第4列每一行都是一样的值(WSBZ)
就类似于数据库中的0,1显示成男,女
select
case xb when '1' then '女'
when '0' then '男'
end 性别
from ...
只不过我这里的'WSBZ' billtype中的值都是固定的而已,跟查询条件没任何关系
比如说id,name
就两个字段,我返回的rs要id,name和一个我自己定义的列,这个列的值都是固定的。
但是我命名给这个列赋值"abc",结果getString的时候给我补了很多空格,跟查询条件没任何关系
select t.id,t.name,'WSBZ',billtype form table t where ...
后面加个逗号?
我也觉得奇怪,可是长度是32,而且这个字段是我自动加的列,没设置类型
另外我拿出语句执行返回的也没有空格的,只是一调用rs.getString时就加空格了
想看oracle的jdbc的代码又反编译不了
加逗号干吗?这个字段值就是'WSBZ',字段名就是billtype
就是'WSBZ' as billtype,只不过这里的as可以省略而已
'WSB Z'
在B和Z中间加上10个空格,你猜猜返回的字符串是不是还是32个在B和Z中间加上40个空格,你猜猜返回的字符串是不是还是44个?还是32个? 哈哈哈!也许Oracle默认的char长度就是32呢! 你的去查Oracle的手册了!
谢谢了
本来想这样试的,但是突然发现另外一个人写的
'SQD' billtype
居然是对的,搞的我很是纳闷
不管怎么说还是谢谢了
驱动的都是一样的,在一个数据库上是对的,今天连到别的一个库就遇到了,可能是ORACLE的小版本变化引起的
上次就遇到类似极其变态的问题
可能oracle默认的是char不是varchar,你trim下吧,再研究研究。
在billtype前加个逗号“,”