sorry我写错了,是
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
   会出错

解决方案 »

  1.   

    还有这样的现象????好奇怪呀.我用SQLServer都不会出现这样的情况呢.是不是你数据库里的类型设置错了,一般在Oracle中字符类型不都是varchar2吗???你为什么写varchar呢????
      

  2.   

    你的代码,我在JB9+Oracle9下运行正常:
    package test;import java.sql.*;
    import java.sql.*;
    import java.sql.Connection;
    import java.util.*;public class Untitled1 {
      public Untitled1() {
        try {
          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          String url = "jdbc:oracle:thin:@efisky:1521:PInfoMan";
          String user = "system";
          String password = "oracle";
          Connection conn = DriverManager.getConnection(url, user, password);
          Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql = "select lngNoteID,strTitle from PIM_Owner.PIM_Notes";
          ResultSet rs = stmt.executeQuery(sql);
          while (rs.next()) {
            System.out.println(rs.getString("strTitle"));
            System.out.println(rs.getString("lngNoteID"));
          }
        }
        catch (SQLException ex) {
          ex.printStackTrace();
        }
        catch (ClassNotFoundException ex) {
          ex.printStackTrace();
        }
        catch (IllegalAccessException ex) {
          ex.printStackTrace();
        }
        catch (InstantiationException ex) {
          ex.printStackTrace();
        }  }
      public static void main(String[] args) {
        Untitled1 untitled11 = new Untitled1();
      }}
    结果:
    test1
    42
    ooo
    3
    ooo
    4
    test1
    5
      

  3.   


    lngNoteID number
    strTitle Varchar2(100)
      

  4.   

    但我这里确实是出错了,
    我不知道是不是JDBC的错误
    我用的是
    classes12.zipJDK是1.4数据库是Oracle8.0.5我去Oracle网站就没看见有for JDK1.4的JDBC驱动是不是这有问题???????????
      

  5.   

    Oracle最高的版本也是用的classer1.2,应该不是不兼容的问题。
    不过你的问题真的很奇怪。
      

  6.   

    rs.getDouble("name");
    看看这样会不会出问题
      

  7.   

    getString取number没什么问题,
    用这个方法吧conn.createStatement(),不要加参数试试。
    另外你的sid正确是否正确?可以先在console里连接一下jdbc:oracle:thin:@localhost:1521:orcl,
    方法是在http://localhost:7001/console里点击界面右边的connection pool
      

  8.   

    这个就是看你用stmt时的选用的游标模式的问题了。 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 还有你说的ResultSet.TYPE_FORWARD_ONLY等,你调整一下这些模式就可以了。
      

  9.   

    应该是oracle 驱动的问题。我就曾遇到过,用Oracle公司817下面自己带的驱动,连接的9I时候老是错误。后来用来weblogic下面的驱动就解决了问题。
    建议你可以到Oracle公司的网址上查一下。Oracle真的不同的数据库版本有不同的驱动
      

  10.   

    to ddadoris:
       用默认的游标没问题,但我本意就是不用默认的游标
    to hykwolf:
       我这里只是举个例子,并不是说我要取的值是数值to kb:
       不好意思,你能帮我看看该用那种驱动吗?我用的是
    classes12.zipJDK是1.4数据库是Oracle8.0.5我去Oracle网站就没看见有for JDK1.4的JDBC驱动
      

  11.   

    会不会是response的编码问题?
      

  12.   

    1. 用9i的驱动,名字不叫classes12.zip拉,好像叫ojdbc14.jar
    2. 数据库设置可能不队
      

  13.   

    没碰到过,很怪。不过我用JDBC连接Oracle时都会碰到一些七七八八的问题。