当我跑步时:
select * from sys.server_role_members ;
出现以下错误:
SQLCODE=-204, SQLSTATE=42704, DRIVER=4.18.60
答案 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.ROLES和SYSCAT.ROLEAUTH。
此外,用于Linux / Unix / Windows的Db2提供了非常有用的表功能AUTH_LIST_AUTHORITIES_FOR_AUTHID。
如果您的Db2服务器在i系列上运行,则存在不同个表/视图。这就是为什么您需要了解正在使用的Db2的哪个平台,并将其写在问题中。