Innym sposobem, aby parser zgłosił ten sam wyjątek, jest poniższa niepoprawna klauzula.
SELECT r.name pełniły r GDZIE ID w (SELECT ROLE_ID, system_user_id Z role_members m GDZIE r.id = m.role_id I m.system_user_id = intIdSystemUser )
zagnieżdżona Instrukcja SELECT w klauzuli IN zwraca dwie kolumny, które analizator widzi jako operandy, co jest technicznie poprawne, ponieważ kolumna id dopasowuje wartości z jednej kolumny (role_id) do wyniku zwróconego przez zagnieżdżoną instrukcję select, która ma powrócić lista.
Dla zachowania kompletności poprawna składnia jest następująca.
SELECT r.name pełniły r GDZIE ID w (SELECT ROLE_ID Z role_members m GDZIE r.id = m.role_id I m.system_user_id = intIdSystemUser ), z których
Procedura przechowywana to zapytanie jest częścią nie tylko analizowaną, ale zwróciło oczekiwany wynik.
To również rozwiązało mój problem. Ale nie rozumiem, dlaczego? – Chud37