Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como escrever procedimentos armazenados usando tabelas de outro esquema?


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 .