为什么在执行以下查询时出现错误SQLCODE = -204,SQLSTATE = 42704,DRIVER = 4.18.60

时间:2018-09-05 05:41:32

标签: db2 ibm-data-studio

当我跑步时:

select * from sys.server_role_members ;

出现以下错误:

SQLCODE=-204, SQLSTATE=42704, DRIVER=4.18.60

1 个答案:

答案 0 :(得分:2)

您似乎是个初学者,您需要知道在寻求有关Db2的帮助时,务必始终编写Db2版本和Db2服务器操作系统(Z / OS,i系列(以前称为AS / 400),或Linux / Unix / Windows)。这是因为这三个平台具有不同的功能,有时SQL也不同,目录也不同。

您收到该错误,因为查询仅适用于Microsoft SQL-Server数据库。

您的查询无法在Db2上运行,因为Db2不允许用户创建的模式名称以SYS开头。一些IBM创建的模式名称可以以SYS开头,例如SYSIBM和SYSCAT,但是它们保留用于目录,并且由Db2在数据库创建期间创建。

Db2具有SYSIBM.SYSROLEAUTH和SYSIBM.SYSROLES之类的表,并且(在Linux / Unix / Windows上)在SYSCAT模式中具有这些表的一组视图。

例如,如果您的Db2服务器在Linux / Unix / Windows上运行,则这些视图存在SYSCAT.ROLESSYSCAT.ROLEAUTH

此外,用于Linux / Unix / Windows的Db2提供了非常有用的表功能AUTH_LIST_AUTHORITIES_FOR_AUTHID

如果您的Db2服务器在i系列上运行,则存在不同个表/视图。这就是为什么您需要了解正在使用的Db2的哪个平台,并将其写在问题中。