import java.sql.*;
import java.lang.ClassNotFoundException;
public class testorc
{
public static void main(String args[])
{
try
{
String sql="select * from users";
    String url="jdbc:oracle:thin:@localhost:1521:oemrep";
     Class.forName("oracle.jdbc.driver.OracleDriver");
     Connection conn=DriverManager.getConnection(url,"system","******");
     Statement stmt=conn.createStatement();
     ResultSet rs=stmt.executeQuery(sql);
}
catch(SQLException e)
{
e.printStackTrace();
}
    catch(ClassNotFoundException ex)
    {
     ex.printStackTrace();
     }

     
     }
}
我在Oracle数据库中建了了一张表users:
create table users(
userid varchar2(10) not null,
username varchar2(10),
role char(1)
)
我测试了,数据库能连接成功,表名大小写也都试过,用户前缀也试过,
但是运行结果说表或视图不存在,望指点!

解决方案 »

  1.   

    请问你的users表是system用户创建的吗?oemrep是你的数据库实例名称吗?
      

  2.   

    system连接数据库。用户前缀也试过。sys登录
    grant select on 用户前缀.users to system;
    虽然你使用了用户前缀,但是前提是,system在该表上有select权限!
      

  3.   

    我在数据库直接执行以上语句,能查出我要的结果,但我给system授予select权限还是返回表或视图不存在!
      

  4.   

    users表是在sys用户下创建的,但我用system用户登陆时也能查出结果,而且我把sys.users的select权限授予system,还是不行。oemrep是我的数据库实例。我数据库中有三个实例,这是其中的一个
      

  5.   

    那你把 Connection conn=DriverManager.getConnection(url,"system","******");
    中的用户名和密码修改成sys的用户名和密码测试一下看看。
      

  6.   

    还是不行,我用的是Oracle9.2的,不知道是不是自己建数据库时有问题,