ORA-01427: single-row subquery returns more than one row
OracleO que significa?
Uma subconsulta da qual se esperava uma única linha retornou mais de uma linha. Por exemplo, a subconsulta do lado direito de uma comparação de igualdade (=) produziu vários valores.
Por que acontece?
Uma subconsulta retornando várias linhas onde se espera = ou uma atribuição; uma condição WHERE insuficientemente restrita; uma correspondência não única na correlação; uma subconsulta escalar na lista do SELECT retornando várias linhas.
Como resolver
Restrinja a subconsulta para que ela retorne uma única linha (WHERE adicional, chave única). Se vários valores forem realmente esperados, use IN em vez de =: WHERE id IN (SELECT id FROM ...). Ou adicione uma agregação à subconsulta (MAX, MIN), ou reduza-a a uma linha com ROWNUM = 1. Primeiro execute a subconsulta isoladamente e verifique quantas linhas ela retorna.