eclipse可以连接oracle数据库,我在Oracle中的USERS表已经插入数据,但是我查询我的数据时出现了以下问题:getDirectConnection()oracle.jdbc.driver.OracleConnection@2bbd86
java.sql.SQLException: ORA-00942: 表或视图不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:572)
at OracleTest.getUsers(OracleTest.java:46)
at OracleTest.main(OracleTest.java:13)我写的代码如下:import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class OracleTest {
/**
 * @author:nieenlun
 */
public static void main(String[] args) {
System.out.println("getDirectConnection()" + getDirectConnection());
getUsers();
} // Oracle 数据库的连接
public static Connection getDirectConnection() {
Connection connection = null;
String driverName = "oracle.jdbc.driver.OracleDriver";
try {
Class.forName(driverName);// 127.0.0.1
String url = "jdbc:oracle:thin:@localhost:1521:oracle";
String username = "test";
String password = "test";
connection = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection; 
} // 获取表数据
public static void getUsers() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null; try {
conn = getDirectConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select user_id, name, age,longin_name,password,user_type from USERS"); while (rs.next()) {
// for (int i = 1, cnt = 6; i < cnt; i++)
// System.out.println("valued = " + rs.getString(i));
System.out.print(rs.getString("user_id") + "\t");
System.out.print(rs.getString("name") + "\t");
System.out.print(rs.getString("age") + "\t");
System.out.print(rs.getString("longin_name") + "\t");
System.out.print(rs.getString("password") + "\t");
System.out.print(rs.getString("user_type") + "\t"); } rs.close();
rs = null;
stmt.close();
stmt = null;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) { } try {
if (stmt != null) {
stmt.close();
}
} catch (Exception e) { }
}
}
}

解决方案 »

  1.   

    USERS是用户test的表么?貌似不像。可以用[用户.表名]方式。比如,
    SELECT * FROM 某用户.USERS
      

  2.   

    test是我数据库的通过pl/sql进入数据库的用户名和密码,也就是我这库数据库现在的用户名和密码,我刚才按的方式做了,但是还是报同样的错误。
      

  3.   

    表或视图不存在阿你看你的角色能不能访问USERS表阿,就是有没有这个权限,这种SQL语句的问题,还是自己先在sql plus中运行一下比较好