【问题标题】:Db2 connection problem with javajava的db2连接问题
【发布时间】:2010-12-08 00:05:12
【问题描述】:

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

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

我有一个名为 onp 的数据库和一个名为“login”的表,其中有一个名为“login”的表,其中包含两个字段用户名和密码。

查询我正在运行

  1. 从登录中选择 *;给我错误

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

  1. 从 system.login 中选择 *;给我错误:-(//系统是架构名称)

DB2 SQL 错误:SQLCODE=-551, SQLSTATE=42501, SQLERRMC=DB2ADMIN;SELECT;SYSTEM.LOGIN, DRIVER=3.57.82

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

【问题讨论】:

    标签: java jdbc db2 db2-luw


    【解决方案1】:

    我对 DB2 了解不多,但是查找错误代码...

    第一个错误是因为你没有指定架构,所以找不到登录表。

    SQLCODE -204 对象未定义到 DB2

    DB2 显然要求您指定模式名称,否则它会在模式中查找与您的登录用户同名的名称。

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

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

    SQLCODE -551,错误:没有 执行操作的特权 对象

    我不确定为什么 db2admin 用户无法从该表中进行选择...

    资源:
    List of DB2 SQLCODEs

    【讨论】:

    • -204 还表示完全限定表名中指定的模式不正确或不存在。
    • 如果你有一个命令行,下面的帮助 db2 ? SQLnnnn 其中 nnnn 是 4 位 sql 代码(如果需要,在左侧扩展为 0)。这将打印错误说明。
    【解决方案2】:

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

    转到控制中心 - 转到用户组和对象并选择 DB2ADMIN(假设此用户是连接到 DB2 的用户)

    勾选以下所有复选框

    向用户授予架构访问权限

    向用户授予表访问权限

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我通过在我的实体中添加 Schema 解决了它:

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

      【讨论】:

      • 谢谢@ilias,这解决了我的问题。
      • 这适用于 DB2 但不适用于 H2 数据库,知道为什么吗?
      【解决方案4】:

      您也可以通过以下方式解决问题:

      只需向您连接到 DB2 的用户授予适当的权限。

      【讨论】:

        猜你喜欢
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-02
        • 1970-01-01
        • 2011-07-29
        相关资源
        最近更新 更多