Другой способ сделать синтаксический разбор аналогичным исключением - следующее неправильное предложение.
ВЫБОР r.name ОТ роли г WHERE ID IN (SELECT ROLE_ID, system_user_id ОТ role_members м ГДЕ r.id = m.role_id И m.system_user_id = intIdSystemUser )
вложенной Оператор SELECT в предложении IN возвращает два столбца, которые парсер видит как операнды, что является технически корректным, поскольку столбец id соответствует значениям из одного столбца (role_id) в результате, возвращаемом вложенным оператором select, который, как ожидается, вернется список.
Для полноты правильного синтаксиса является следующим.
ВЫБОР r.name ОТ роли г WHERE ID IN (SELECT ROLE_ID ОТ role_members м ГДЕ r.id = m.role_id И m.system_user_id = intIdSystemUser )
Хранимая процедура которого этот запрос является частью, которая не только анализируется, но и возвращает ожидаемый результат.
Это также решило мою проблему. Но я не понимаю, почему? – Chud37