2009-10-19 82 views
8

我遇到了DB2的问题。我刚刚将db2安装为db2admin和密码。当我尝试连接到数据库时,它已成功完成,并且在运行任何简单的选择查询时,它会给我出现以下错误: -java的db2连接问题

DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82

我有一个名为onp的数据库和一个名为'login'的表,其中有一个名为'login'的表有两个字段username和password。

查询我从登录运行

  1. 选择*;让我错误

DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,则sqlerrmc = DB2ADMIN.LOGIN,DRIVER = 3.57.82

  • 选择从系统* 。登录;给我的错误: - (//系统是架构名称)
  • DB2 SQL错误:SQLCODE = -551,SQLSTATE = 42501,则sq​​lerrmc = DB2ADMIN;选择; SYSTEM.LOGIN,DRIVER = 3.57.82

    我已经尝试了网络上的所有资源,并完全耗尽。请帮我

    回答

    9

    我不知道了很多关于DB2,但查找错误代码......

    第一个错误是因为你没有指定模式,所以它无法找到登录表。

    SQLCODE -204 Object not defined to DB2

    DB2显然要求您指定模式名称,或者它在与您的登录用户具有相同名称的架构中查找。

    您必须使用SET SCHEMA或完全限定表名称。

    第二个错误是因为您没有权限来执行选择:

    SQLCODE -551, Error: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION ON OBJECT

    我不知道为什么DB2ADMIN用户将无法从该表中选择...

    资源:
    List of DB2 SQLCODEs

    +0

    感谢我得到它在你的帮助解决。 – RishiPatel 2009-11-01 06:34:22

    +0

    -204也会指出完全限定的表名中的指定模式不正确或不存在。 – ammianus 2013-01-02 21:24:08

    +0

    如果你有一个命令行,下面的代码有助于'db2? SQLnnnn',其中nnnn是4位数字的sql代码(如果需要,在左边延伸0)。这将打印错误的解释。 – Ingo 2013-07-16 13:48:29

    1

    您也可以解决问题为:

    刚为连接到DB2的用户授予适当的权限。

    4

    SQL代码551发生是因为连接用户没有执行操作的权限。

    转到控制中心 - 进入用户组和对象,并选择DB2ADMIN(假设该用户是一个用于连接到DB2)

    enter image description here

    检查所有的复选框为以下

    enter image description here

    格兰特架构访问用户 enter image description here

    授权表访问用户 enter image description here

    1

    我有同样的问题,我解决它在我的实体添加架构:

    @Entity 
    @Table(name="MyTable", schema="MySchemaName") 
    public class MyClass implements Serializable { 
    ... 
    }