Para escribir una función o procedimiento utilizando una tabla en otro esquema, el propietario de la tabla debe otorgarnos el privilegio requerido. Por ejemplo:
SQL> conn hr/hr
SQL> grant select on employees to mousumi;
o pídale a un superusuario que lo haga por usted:
SQL> conn dba_user/password
SQL> grant select on hr.employees to mousumi;
Se pueden otorgar privilegios a roles, pero no podemos usar esos privilegios para crear procedimientos o vistas. Para tal efecto, los privilegios deben ser otorgados directamente a nosotros. Más información .
Cuando hacemos referencia a eso, debemos incluir el nombre del esquema:
SQL> select * from hr.employees;
Alternativamente, podemos crear un sinónimo para ello.
SQL> create synonym employee_table for hr.employees;
SQL> select * from employee_table;
El sinónimo es solo una etiqueta:puede ser cualquier cosa que queramos siempre que sea único dentro de nuestro esquema (y se ajuste a las convenciones de nomenclatura de Oracle). Más información .