如下一个SQL语句:
select t.id,t.name,'WSBZ' billtype form table t where ...
语句执行一切正常,只有一条记录,但是用rs.getString("billtype")时居然给我返回的是32个长度的字符串"WSBZ                          "
ORACLE9.2 + Weblogic,不知道有没有人遇到过?ORACLE不是在windows环境下,难道是编码问题?可是别的字段都没错啊。

解决方案 »

  1.   

    select   t.id,t.name,'WSBZ'   billtype   form   table   t   where   ... 
    这个带红字的是什么意图?
      

  2.   

    这个值是固定的,就是一个字符串"WSBZ"
      

  3.   

    类似于
    select '男' as 性别 from ...
      

  4.   

    这种查找常量的条件也应该放在where子局之后啊
    select t.* from t where t.xx like 'WSBZ';
    select语句前面的部分是告诉数据库要获取的字段的名字,where字句后面的部分才加查询条件。
      

  5.   

    我两次都没打对,应该是where“子句”
      

  6.   

    这不是在条件里面的啊!
    我本来要查的就是'WSBZ' billtype,这里的billtype就是固定的,这样我查询的结果就是下面的值1 值2 值3 WSBZ    --- 某一行的值,只不过这里的第4列每一行都是一样的值(WSBZ)
      

  7.   

    'WSBZ' billtype ,这个不是条件啊
    就类似于数据库中的0,1显示成男,女
    select 
        case xb when '1' then '女'
                when '0' then '男'
        end 性别
    from ...
    只不过我这里的'WSBZ' billtype中的值都是固定的而已,跟查询条件没任何关系
      

  8.   

    这是值,后面的billtype才是字段名,省略了as
      

  9.   

    请问你第四列的值都是'wsbz'和按条件查询所有billtype的值都是'wsbz',查询结果有区别吗?
      

  10.   

    表中根本就没有billtype这个字段,我返回的ResultSet中要有这个字段
      

  11.   

    晕了,表结构无所谓啊
    比如说id,name
    就两个字段,我返回的rs要id,name和一个我自己定义的列,这个列的值都是固定的。
    但是我命名给这个列赋值"abc",结果getString的时候给我补了很多空格,跟查询条件没任何关系
      

  12.   

    'WSBZ' 默认的字段类型是不是char的? char的默认长度是30
      

  13.   


    select t.id,t.name,'WSBZ',billtype form table t where   ... 
    后面加个逗号?
      

  14.   

    回复:java2000_net 
    我也觉得奇怪,可是长度是32,而且这个字段是我自动加的列,没设置类型
    另外我拿出语句执行返回的也没有空格的,只是一调用rs.getString时就加空格了
    想看oracle的jdbc的代码又反编译不了
      

  15.   

    回复:believefym 
    加逗号干吗?这个字段值就是'WSBZ',字段名就是billtype
    就是'WSBZ' as billtype,只不过这里的as可以省略而已
      

  16.   

    JDBC需要探测字段的数据类型,这时候可能发生转化,自动把那个字段换成char了,你可以这样测试
    'WSB      Z'
    在B和Z中间加上10个空格,你猜猜返回的字符串是不是还是32个在B和Z中间加上40个空格,你猜猜返回的字符串是不是还是44个?还是32个? 哈哈哈!也许Oracle默认的char长度就是32呢! 你的去查Oracle的手册了!
      

  17.   

    回复:java2000_net 
    谢谢了
    本来想这样试的,但是突然发现另外一个人写的
    'SQD' billtype
    居然是对的,搞的我很是纳闷
      

  18.   

    更换你的Oracle驱动到最新版!OVER, 这个可能性最大!
      

  19.   

    回复:java2000_net
    不管怎么说还是谢谢了
    驱动的都是一样的,在一个数据库上是对的,今天连到别的一个库就遇到了,可能是ORACLE的小版本变化引起的
    上次就遇到类似极其变态的问题
      

  20.   

    我没用oracle,测试结果是对的,
    可能oracle默认的是char不是varchar,你trim下吧,再研究研究。
      

  21.   

    哈哈!你点背! Oracle 9i 的早期版本问题多多,我都遇到n多次,只好重新安装最新版的才行!我说的也是小版本。呵呵!
      

  22.   

    select   t.id,t.name,'WSBZ'   billtype   form   table   t   where   ... 
    在billtype前加个逗号“,”