Statement stmt = conn.createStatement("desc test");
这样写PreparedStatement stmt = conn.prepareStatement("desc test");如果安你那么写的话你的SQL里面必须有参数
执行的时候必须设置参数
stmt.setString(1,..);
stmt.setString(2,..);
....
然后才可以执行~

解决方案 »

  1.   


        try{
          DriverManager.registerDriver((Driver) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance());
          conn = DriverManager.getConnection(connectionString, username,password);
          PreparedStatement stmt = conn.prepareStatement("desc ?");
          stmt.setString(1,"test"); 
          ResultSet rset = stmt.executeQuery();
          while(rset.next()){      }应该也可以!
          
      

  2.   

    ResultSet rset = stmt.executeQuery();
    改成
    ResultSet rset = stmt.execute();试试看
      

  3.   

    错了。
    我想desc xxxx 只能用execute(),他并不是一个查询语句。
    而execute()的返回值是boolean类型。
    boolean success=stmt.execute();如果你想查询关于表xxxx的信息用恐怕要查询oracle的数据字典(data dictionary)表来获取相关的表信息。
      

  4.   

    但是同样的程序如果连接mysql的话却没有问题
    郁闷