[英]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.