La subconsulta que pones, tal como te dice el sistema, devuelve más de un registro, y eso no se puede poner en un único campo de un único registro:
Código SQL:
Ver originalSELECT grantee
FROM dba_tab_privs
WHERE TABLE_NAME=tabla AND privilege=privilegio
Ese UPDATE que haces:
Código SQL:
Ver originalUPDATE SYSTEM.CONTROL_SEGURIDAD
SET perfil = (subconsulta)
le está diciendo al sistema en el campo
perfil de cada uno de los registros de la tabla CONTROL_SEGURIDAD le meta todos los registros qe devuelve esa subconsulta... Todos...
¿Se entiende el absurdo?