Para escrever uma função ou procedimento usando uma tabela em outro esquema, o proprietário da tabela precisa nos conceder o privilégio necessário. Por exemplo:
SQL> conn hr/hr
SQL> grant select on employees to mousumi;
ou peça a um superusuário para fazer isso por você:
SQL> conn dba_user/password
SQL> grant select on hr.employees to mousumi;
Privilégios podem ser concedidos a funções, mas não podemos usar esses privilégios para criar procedimentos ou visualizações. Para isso, os privilégios devem ser concedidos diretamente a nós. Saiba mais .
Quando fazemos referência a isso, precisamos incluir o nome do esquema:
SQL> select * from hr.employees;
Alternativamente, podemos criar um sinônimo para ele.
SQL> create synonym employee_table for hr.employees;
SQL> select * from employee_table;
O sinônimo é apenas um rótulo:pode ser qualquer coisa que gostemos, desde que seja único em nosso esquema (e esteja de acordo com as convenções de nomenclatura do Oracle). Saiba mais .