我的程序是这样的:
      Class.forName(sDBDriver).newInstance();
      conn=DriverManager.getConnection(sConnStr,user,password);
      sqlstr="select * from 事项_终端事项";
      stmt=conn.createStatement();
      System.out.println("连接成功");
      rs=stmt.executeQuery(sqlstr);
执行是可以的。但我换个sql语句:(其他完全一样)
     sqlstr="select * from 事项_计量点事项";
则发生错误。错误提示是:ErrorORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [], [], [], [], [], []  
所不同仅仅是两个表的名字不同,为什么一个可以,另一个就不可呢?

解决方案 »

  1.   

    select * from 事项_计量点事项
    在查询分析器里看一下对不对
      

  2.   

    up  jyy7751(wish i could fly)
      

  3.   

    正确的:
    package mytest;
    import java.sql.*;
    import java.sql.*;
    import java.io.*;
    public class Test
      implements Serializable {
      boolean isStandalone = false;
      String sDBDriver = "oracle.jdbc.driver.OracleDriver";
      String sConnStr = "jdbc:oracle:thin:@dbserver:1521:dbsvr"; //此处请改为你的数据库连接
      String user="xiao";
      String password="gou";
      Connection conn = null;
      ResultSet rs = null;
      Statement stmt;
      String sqlstr;
      public static void main(String args[]) {
        Test db = new Test();
      }
      public Test() {
        try {
          Class.forName(sDBDriver).newInstance();
          conn=DriverManager.getConnection(sConnStr,user,password);
          sqlstr="select * from 事项_终端事项";
          //sqlstr=new String(sqlstr.getBytes("gb2312")); 
          //sqlstr=new String(sqlstr.getBytes("8859_1"),"gb2312");
          System.out.println(sqlstr);
          stmt=conn.createStatement();
          System.out.println("连接成功");
          rs=stmt.executeQuery(sqlstr);
          //rs.getString(0);
          rs.next();
          //System.out.println("OK");
          System.out.println(rs.getString(2));
        }
            
        catch (java.lang.ClassNotFoundException e) {
          System.err.println("openOracle();" + e.getMessage());
        }catch(Exception e){
          System.out.println("Error"+e.getMessage());
        }
      }
    }错误的:package mytest;
    import java.sql.*;
    import java.sql.*;
    import java.io.*;
    public class Test
      implements Serializable {
      boolean isStandalone = false;
      String sDBDriver = "oracle.jdbc.driver.OracleDriver";
      String sConnStr = "jdbc:oracle:thin:@dbserver:1521:dbsvr"; //此处请改为你的数据库连接
      String user="xiao";
      String password="gou";
      Connection conn = null;
      ResultSet rs = null;
      Statement stmt;
      String sqlstr;
      public static void main(String args[]) {
        Test db = new Test();
      }
      public Test() {
        try {
          Class.forName(sDBDriver).newInstance();
          conn=DriverManager.getConnection(sConnStr,user,password);
          sqlstr="select * from 事项_计量点事项";
          System.out.println(sqlstr);
          stmt=conn.createStatement();
          System.out.println("连接成功");      rs=stmt.executeQuery(sqlstr);//错误行      //rs.getString(0);
          rs.next();
          //System.out.println("OK");
          System.out.println(rs.getString(2));
        }
            
        catch (java.lang.ClassNotFoundException e) {
          System.err.println("openOracle();" + e.getMessage());
        }catch(Exception e){
          System.out.println("Error"+e.getMessage());
        }
      }
    }错误代码:
    ErrorORA-00600: 内部错误代码,参数: [ttcgcshnd-1], [0], [], [], [], [], [], []
      

  4.   

    加在rs=stmt.executeQuery(sqlstr);的后面试试,rs.close(); stmt.close();conn.close();
    嘻嘻
      

  5.   

    还是不行啊。我都要快死了。破烂java是什么东西啊?烦死我了,明明两个是一样的,怎么就一个好用,一个不好用呢?给我个理由,先!!!