String sqlStatement="select * from s_user where user_id=1";
      ps=conn.prepareStatement(sqlStatement) ;
      ps.setString(1,userId);
      ResultSet rs=ps.executeQuery();      数据库里有这个名,而且在其它地方能用,就是在这个地方不能用,报表名无效错.      请高手赐教!谢谢.

解决方案 »

  1.   

    是不是,String sqlStatement="select * from s_user where user_id=?";
      

  2.   

    String sqlStatement="SELECT * FROM \"S_USER\" WHERE user_id=1";
      

  3.   

    String sqlStatement="select * from 表空间名.s_user where user_id=1";
      

  4.   

    String sqlStatement="select * from 用户名.s_user where user_id=1";
          ps=conn.prepareStatement(sqlStatement) ;
          ps.setString(1,userId);
          ResultSet rs=ps.executeQuery();
      

  5.   

    估计是你程序打开DB connection 的UID,没有访问表的权限;看看表的owner是什么,用【select * from  [owner].[表名]】建议专业的程序员在引用数据库表名时,务必声明表的owner
      

  6.   

    在数据库里对此表建个公有同义词,赋权就能解决。
    create public synonym
    grant select for
      

  7.   


    1、可能自己写错了,这个表不存在: 写正确
    2、权限问题,这个表不是自己的: 写成 OWNER.TABLE_NAME 模式
      

  8.   

    创建新表时:表名前面如果没有加上用户名,则在查询该表时可以直接查询。
    如:select * from Airways.否则要用select * from AMS.Airways
    如果创建新表时前面加上用户名。则可用创建对应的“同义词”来解决查询表时要加上用户名的问题。
      

  9.   

    SELECT * FROM OWNER.TABLE_NAME