繁体   English   中英

在java中收到错误“ ORA-00942:表或视图不存在”

[英]getting error “ORA-00942: table or view does not exist ” in java

我正在尝试学习连接到Oracle数据库

当我以这种方式登录sqlplus时:

sqlplus sys/Oracle_1@orcl as sysdba;

我运行以下代码:

connect hr/hr@orclpdb

select count(*) from employees;

我得到以下输出:

 COUNT(*)
----------
       107

但是,当我尝试在Java代码中访问此表时,出现此错误:

ORA-00942: table or view does not exist

这是我的Java代码:

class OracleCon{  
public static void main(String args[]){  
try{  
Class.forName("oracle.jdbc.driver.OracleDriver");  
Connection con=DriverManager.getConnection(  
        "jdbc:oracle:thin:hr/hr@localhost:1521/orclpdb","sys as sysdba","Oracle_1"); 
Statement stmt=con.createStatement();  
ResultSet rs=stmt.executeQuery("select count(*) from employees");  
while(rs.next())  
System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
con.close();  
}catch(Exception e){ System.out.println(e);}  

}  
}  

我该怎么做才能解决这个问题?

您尝试在Java代码中使用sys用户连接它,但是hr模式中存在表employee

您可以更改:

//Change this line from

Connection con=DriverManager.getConnection(  
        "jdbc:oracle:thin:hr/hr@localhost:1521/orclpdb","sys as sysdba","Oracle_1"); 

// to

Connection con=DriverManager.getConnection(  
        "jdbc:oracle:thin:hr/hr@localhost:1521/orclpdb","hr","hr"); 

要么

您可以更改从表employee中获取数据的方式(使用其架构查询表)

//Change this line from
ResultSet rs=stmt.executeQuery("select count(*) from employees"); 
//to
ResultSet rs=stmt.executeQuery("select count(*) from hr.employees"); 

干杯!!

请尝试此代码。 必须工作

public static void conn() throws ClassNotFoundException, SQLException{  
    Connection con=DriverManager.getConnection(  
            "jdbc:oracle:thin:@localhost:1521:orclpdb", "HR", "HR"); 
    Statement stmt=con.createStatement();  
    ResultSet rs=stmt.executeQuery("select count(*) from dual");  
    while(rs.next())  
        System.out.println(rs.getInt(1));  
    con.close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM