Class.forName("com.ibm.db2.jcc.DB2Driver");Connection conn = getconn("jdbc:db2://127.0.0.1:50000/TESTRA", "TEST", "123456");ResultSet rs = stmt.executeQuery("select *from TB_ADMIN ");
错误提示:Exception in thread "main" com.ibm.db2.jcc.a.bn: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=TEST.TB_ADMIN, DRIVER=3.51.90
分析:
-204 
42704 
没有定义的对象名 
需要查 DB2ADMIN这个schema下,是否有TB_ADMIN这个表。但是我现在的schema名称都是RA
数据库名称是TESTRA
用户名是TEST
密码123456使用toad工具查看发现数据库中表是这样的,toad使用上述参数是可以正常连接访问的,
"RA"."TB_ADMIN",是schema为打头的,我的JDBC组合中为什么变成了用户名打头呢TEST.TB_ADMIN,?还需要有什么特殊的设置么?

解决方案 »

  1.   


    public   static void   main(String[] args)   {   
    String   sDBDriver       =   "com.ibm.db2.jcc.DB2Driver";   
    String   sConnDataBase   =   "jdbc:db2://127.0.0.1:50000/TESTRA";      Properties properties = new Properties();
    properties.setProperty("user","TEST");
    properties.setProperty("password","198411");
    properties.setProperty("currentSchema","RA"); Connection   con;   
        
    Statement   stmt;   
    ResultSet   rs;    
    try   {   
        Class.forName(sDBDriver);   
        con   =   DriverManager.getConnection(sConnDataBase, properties);        stmt =   con.createStatement(); 
        rs    =   stmt.executeQuery("select * from TB_ADMIN");     while(rs.next()){
          System.out.println("F1=" + rs.getString(1)+" "+rs.getString(2)+
           " "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5)+
           " "+rs.getString(6)+" "+rs.getString(7)); 
        }     rs.close();
        stmt.close();   
        con.close();   
        
    } catch(Exception   e)   {   
        e.printStackTrace();   
    }   
    }  
    这样子就可以查出来,需要加入用户的schema
      

  2.   

    你连接数据库的用户是TEST吧,jdbc默认的会将你的用户名作为默认的schema的,所以你需要指定schema的名字,或者在查询的时候,先set schema = XXXX,建议你还是在表名前加上schema的名字。因为一个数据库中可能有很多不同的schema,好方便管理。
      

  3.   

    Connection con=DriverManager.getConnection(url, user, password)这种好用
      

  4.   

    是不是你的Test用户没有对TB_ADMIN表的操作权限 
      

  5.   

    需要加入用户的schema可以查出来了 
    怎么了啊
      

  6.   

    ResultSet rs = stmt.executeQuery("select *from DB2ADMIN.TB_ADMIN ");
    改成这样
      

  7.   

      Connection conn = getconn("jdbc:db2://127.0.0.1:50000/TEST", "db2admin", "198411");   
      Statement stmt = conn.createStatement();   
      ResultSet rs = stmt.executeQuery("select *from TEST.SC");   
    测试成功,4楼和9楼正解,多谢,呵呵
    等几天结贴,我再加50分感谢,呵呵,20分不能表达我的感谢哈
      

  8.   

    com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: TESTDB2.DB2TEST
    at com.ibm.db2.jcc.c.fg.e(fg.java:1596)
    at com.ibm.db2.jcc.c.fg.a(fg.java:1206)
    at com.ibm.db2.jcc.b.gb.g(gb.java:140)
    at com.ibm.db2.jcc.b.gb.a(gb.java:39)
    at com.ibm.db2.jcc.b.w.a(w.java:34)
    at com.ibm.db2.jcc.b.vb.g(vb.java:139)
    at com.ibm.db2.jcc.c.fg.n(fg.java:1177)
    at com.ibm.db2.jcc.c.gg.eb(gg.java:1862)
    at com.ibm.db2.jcc.c.gg.d(gg.java:2295)请问真是什么错?
    at com.ibm.db2.jcc.c.gg.V(gg.java:424)
    at com.ibm.db2.jcc.c.gg.executeQuery(gg.java:407)
    at jndi.JNDITest.main(JNDITest.java:29)
      

  9.   

    我也有如此问题,但改来改去就是不成功,那位大侠能帮帮我啊?
    http://topic.csdn.net/u/20101203/12/a156a5d3-1591-4a55-911c-679f9dd31602.html?seed=1618726193&r=70326641#r_70326641