我写了一个类,里面要查询dual表,语句就是:select sequences1.nextval from dual,在eclips里执行方法通过了,直接在jsp里执行也能通过,但通过sevlet或者javabean去执行这个方法,都报:对象名'dual'无效,请问这是什么原因呢?

解决方案 »

  1.   

    对象名'dual'无效:
    dual是Oracle系统数据库中的一张虚拟表,
    请楼主查看:
    1. 检查当前登录用户使用的是哪个数据库,该库下有没有dual表;
    2. 当前登录的用户是否具有DBA权限,因为只有这个身份登录的默认表空间才是系统表空间;
    3. 如果是用户自己创建的这张表的话,还要加上用户名才能访问,例如:select * from username.dual.
      

  2.   

    楼主你用的是不是oracle数据库,是的话看看你有没有拼写错误
      

  3.   

    但愿楼主的sql语句都写正确了
      

  4.   

    sql语句是没错的,从oracle的客户端执行语句没有问题,在eclips里测试写好的类也没有问题,在jsp中直接访问也没有问题,只有在调用javaBean和sevlet时提示这个错误,拼写肯定是没有问题的,权限也是dba的权限,表也是系统的dual表
      

  5.   

    问题解决了,我这个类的数据库连接是用读取ini的方式,换成其他方式就解决了,但是不知道究竟为什么
      

  6.   

    问题解决了,我这个类的数据库连接是用读取ini的方式,换成其他方式就解决了,但是不知道究竟为什么