用oracle 驱动 classes12.jar(1.2M) 连接两个不同的数据库服务器(oracle10g),查询长度为1的字段,两个数据库查询出来的结果,字段值长度分别为1位和5位(后面四位为空格),更换驱动后(更换为classes12.jar[1.5M] 或ojdbc14.jar) ,无此现象.. 请高手解答原因....

解决方案 »

  1.   

    嗬嗬,确定两个数据库的表一样吗?
    不是一个是varchar,一个是char?
      

  2.   

    不,都是char ...
    表结构完全一样,但查询出来的结果位数却不同.很奇怪...
      

  3.   

    嗬嗬,没遇到这样的情况。
    不知道你的两个不一样大的classes12.jar都是从什么地方来的。看了oracle的文档。
    在windows环境下面,
    JDK 1.2或者1.3的时候,应该在CLASSPATH里面追加[ORACLE_HOME]\jdbc\lib\classes12.jar
    JDK 1.4的时候,应该在CLASSPATH里面追加[ORACLE_HOME]\jdbc\lib\ojdbc14.jar。我觉得,你是不是拿了以前版本的classes12.jar来做这个测试的呢?赫赫。
      

  4.   

    这个问题,应该还是和数据库有关.
    同样是classes12.jar,用我的数据库正常,用另外一个数据库的话就会出现多出四个空格的情况.
    当然,如果换成高版本的驱动就没问题了.
      

  5.   

    你的两个数据库设置都是一样的吗?
    假如是一样的话,我觉得还是JAR的问题。
    你可以反编译你的JAR文件,调试以下程序,就可以知道原因了。
      

  6.   

    1. 不管驱动,先用sqlplus连接两个数据库检查字段长度,如果一致,转向2;如果不一致,那和驱动版本应该无关了。一般情况下,char类型的字段会自动在不足的地方补充上空格,所以应该都是包含4个空格的。2. 使用不同版本的JDBC驱动测试连接同一个数据库,看看是否出现因为JDBC版本问题导致字段长度不同的情况,如果出现长度不同,转向3;否则,可以判定非驱动问题。3. 下载源码或者反编译JAR包,调试确定原因。