Emerson,
Eu acredito que basta você trocar "=" por "IN" que funciona...
Por favor, leia os textos dos links abaixo para entender o motivo da troca:
==========================================================
How to Resolve ORA-01427: single-row subquery returns more than one row
by Ed ChenMay 15, 2018
A. ORA-01427 em SELECT com operador igual
Se o mecanismo SQL espera que sua subconsulta retorne uma única linha, ele pode lançar ORA-01427 quando a subconsulta retornar mais de uma linha inesperadamente. Por exemplo:
https://logic.edchen.org/how-to-resolve-ora-01427-single-row-subquery-returns-more-than-one-row/
==========================================================
ORA-01427: Subquery returns more than one row
SELECT *
FROM employers
WHERE client_id = (SELECT client_id
FROM clients
WHERE clients_name = ‘Walmart’) ;
https://www.tekstream.com/resource-center/ora-01427-error-message/
==========================================================
Oracle / PLSQL: ORA-01427 Error Message
SELECT *
FROM orders
WHERE supplier_id = (SELECT supplier_id
FROM suppliers
WHERE supplier_name = 'IBM');
SELECT *
FROM orders
WHERE supplier_id IN (SELECT supplier_id
FROM suppliers
WHERE supplier_name = 'IBM');
https://www.techonthenet.com/oracle/errors/ora01427.php
==========================================================
[]'s,
Fabio I.