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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我在执行以下查询时遇到错误SQLCODE = -204,SQLSTATE = 42704,DRIVER = 4.18.60相关的知识,希望对你有一定的参考价值。

当我跑:

select * from sys.server_role_members ;

得到以下错误:

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

由于您似乎是初学者,您需要知道在向Db2寻求帮助时,始终编写Db2版本和Db2服务器操作系统(Z / OS,i-Series(以前称为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平台并在你的问题中写出来的原因。

以上是关于为什么我在执行以下查询时遇到错误SQLCODE = -204,SQLSTATE = 42704,DRIVER = 4.18.60的主要内容,如果未能解决你的问题,请参考以下文章

使用准备好的语句 DB2 时获取 SQLCODE=-313

SQL 查询的准备语句,错误 DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703

为啥我的查询因 SQLCODE = -420 而失败?

尝试使用 MicroStrategy 连接时 DB2 上的 SQLCODE -1334

DB2 SQL 错误:SQLCODE=-952,> SQLSTATE=57014,来自 Tibco BW

oracle 用if sqlcode != 0 来判断sql语句是不是成功 sqlserver 存储过程 怎样判断一条sql语句执行成功了没有