Un altro modo per far sì che il parser sollevi la stessa eccezione è la seguente clausola errata.
SELEZIONA r.name dai ruoli r WHERE id IN (SELECT ROLE_ID, system_user_id DA role_members m DOVE r.id = m.role_id E m.system_user_id = intIdSystemUser )
Il nidificato L'istruzione SELECT nella clausola IN restituisce due colonne, che il parser vede come operandi, che è tecnicamente corretto, poiché la colonna id corrisponde ai valori di una colonna (role_id) nel risultato restituito dall'istruzione select nidificata, che è prevista restituire una lista.
Per motivi di completezza, la sintassi corretta è la seguente.
SELEZIONA r.name dai ruoli r WHERE id IN (SELECT ROLE_ID DA role_members m DOVE r.id = m.role_id E m.system_user_id = intIdSystemUser )
La stored procedure di cui questa query è una parte non solo analizzata, ma ha restituito il risultato previsto.
fonte
2018-03-05 05:46:27
Questo ha risolto anche il mio problema. Ma non capisco perché? – Chud37