Почему я получил ошибку SQLCODE = -204, SQLSTATE = 42704, DRIVER = 4.18.60 при выполнении запроса ниже - PullRequest
0 голосов
/ 05 сентября 2018

Когда я бегу:

select * from sys.server_role_members ;

получил ниже ошибка:

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

1 Ответ

0 голосов
/ 05 сентября 2018

Поскольку вы кажетесь новичком, вам нужно знать, что при обращении за помощью по 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.ROLES и SYSCAT.ROLEAUTH .

Кроме того, Db2 для Linux / Unix / Windows предоставляет табличную функцию AUTH_LIST_AUTHORITIES_FOR_AUTHID , что весьма полезно.

Если ваш Db2-сервер работает на i-Series, то существует различных таблиц / представлений. Вот почему вам нужно знать , какую платформу Db2 вы используете, и написать это в своих вопросах.

...