我遇到了DB2问题。我刚刚将db2安装为db2admin并使用密码。当我尝试连接到数据库时,它已成功完成,并且在运行任何简单的选择查询时,它会给出以下错误: -
DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82
我有一个名为onp的数据库和一个名为'login'的表,其中有一个名为'login'的表,其中包含两个用户名和密码字段。
查询我正在运行
DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82
DB2 SQL错误:SQLCODE = -551,SQLSTATE = 42501,SQLERRMC = DB2ADMIN; SELECT; SYSTEM.LOGIN,DRIVER = 3.57.82
我已经尝试了网上的所有资源并完全耗尽了。请帮帮我
答案 0 :(得分:11)
我对DB2知之甚少,但查找错误代码......
第一个错误是因为您没有指定架构,因此无法找到登录表。
SQLCODE -204未定义到DB2的对象
DB2显然要求您指定架构名称,或者它在架构中查找与您的登录用户同名的内容。
您必须使用SET SCHEMA
或完全限定表名。
第二个错误是因为您没有执行该选择的权限:
SQLCODE -551,错误:没有 执行操作的特权 对象
我不确定为什么db2admin用户无法从此表中选择...
答案 1 :(得分:5)
发生SQL CODE 551是因为连接用户没有执行操作的权限。
转到控制中心 - 转到用户组和对象并选择DB2ADMIN(假设此用户是用于连接DB2的用户)
选中所有复选框,如下所示
向用户授予Schema访问权限
授予表用户访问权限
答案 2 :(得分:1)
您还可以将问题解决为:
只需向与DB2连接的用户授予适当的权限即可。
答案 3 :(得分:1)
我遇到了同样的问题,我通过在我的实体中添加Schema解决了这个问题:
@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}