我自己安装了一个oracle9i, 创建了一个general的数据库TEST,tnsnames.ora里相应的描述是TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = Tom-Lin)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TEST)
    )
  )
我在程序里可以取到数据库连接, 但是在查询的时候总是提示java.sql.SQLException: ORA-00942: 表或视图不存在
查询语句如下select * from user t
user表明明是存在的, 我用pl/sql developer连上去用这个sql语句查询都没出问题, 大家帮帮忙吧。

解决方案 »

  1.   

    确认连接的库是不是你要的库,说不定连到master上了
      

  2.   

    连接字符串如下jdbc:oracle:thin:@127.0.0.1:1521:TEST
      

  3.   

    SELECT table_name FROM user_tables 看看是不是连错了数据库.
      

  4.   

    还有就是我用system用户登陆的, 如果是以normal的方式登陆在pl/sql developer是看不到那个表的, 只有以dba的方式登陆才行。莫非通过driver manager去的连接都是以normal的方式连接的? 如果是这样的话要怎么解决呢, 
      

  5.   

    我后来试着查询了help表, 可以返回正确结果了, 看来取到的连接只有normal的权限, 那我要如何让system用户在normal方式下也能访问那张表呢, 大家给出个主意。
      

  6.   

    这就是数据库权限的问题了。normal的权限里可以访问这个表就行了
      

  7.   

    直接把你使用的用户设为DBA就可以了
      

  8.   

    在oralce里面,把用户的系统角色那个栏里面,把SELECT ANY TABLE角色加给用户。