我在eclipse中用jdbc连接Oracle,在Servlet中用select 语句查询表空间“TEST_APP”中的表“TEST_TBL”,发现必须要加数据库的表空间名称才能正常取得结果,否则就会报“表或视图不存在……”的错误?请问有人遇到过这样的问题吗?我的环境是eclipse 3.4 + wtp + tomcat 6.0.18 + oracle 10g R2,就是语句必须要写成类似 select AAA, BBB from TEST_APP.TEST_TBL 的样子才能查到正确结果。这样的话,以后应用部署会有很多麻烦的,目标环境的表空间名不是确定的。请指教,谢谢。

解决方案 »

  1.   

    不只是java需要这样啊,正常的sql语句查询也需要写成这个。报表或视图不存在是因为该表没有建公共synonym
      

  2.   

    建公共synonym是什么操作?是要在Oracle端坐设置吗?麻烦指点一下,或者给个链接。谢谢啊。
      

  3.   


    这里不是表空间名,是对象的所属的schema名,也就是创建该对象的用户名。这里你可以你jdbc的配置中,把用户名和密码改成你这个表的对象的用户名就可以不用带上前面的schema名了。
      

  4.   

    http://www.itpub.net/thread-43968-1-1.html也可以google一下 oracle synonym
      

  5.   

    首先你要确认你使用JDBC连接Oracle是的用户是什么?
    那个用户是否具有查询TEST_TBL的权限?
      

  6.   


    最好不要用synonym,把简单的问题搞复杂叻。
      

  7.   

    谢谢你。看来Oracle方面的技术我还要抓紧系统地学习。