与java的Db2连接问题

时间:2009-10-19 13:33:14

标签: java jdbc db2 db2-luw

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

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

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

查询我正在运行

  1. 从登录中选择*;给我错误
  2. DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82

    1. 从system.login中选择*;给我错误: - (//系统是架构名称)
    2. DB2 SQL错误:SQLCODE = -551,SQLSTATE = 42501,SQLERRMC = DB2ADMIN; SELECT; SYSTEM.LOGIN,DRIVER = 3.57.82

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

4 个答案:

答案 0 :(得分:11)

我对DB2知之甚少,但查找错误代码......

第一个错误是因为您没有指定架构,因此无法找到登录表。

  

SQLCODE -204未定义到DB2的对象

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

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

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

  

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

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

资源:
List of DB2 SQLCODEs

答案 1 :(得分:5)

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

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

enter image description here

选中所有复选框,如下所示

enter image description here

向用户授予Schema访问权限 enter image description here

授予表用户访问权限 enter image description here

答案 2 :(得分:1)

您还可以将问题解决为:

只需向与DB2连接的用户授予适当的权限即可。

答案 3 :(得分:1)

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

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