Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment écrire des procédures stockées en utilisant des tables d'un autre schéma ?

Pour écrire une fonction ou une procédure à l'aide d'une table dans un autre schéma, le propriétaire de la table doit nous accorder le privilège requis. Par exemple :

SQL>  conn hr/hr
SQL>  grant select on employees to mousumi;

ou demandez à un super utilisateur de le faire pour vous :

SQL>  conn dba_user/password
SQL>  grant select on hr.employees to mousumi;

Des privilèges peuvent être accordés à des rôles, mais nous ne pouvons pas utiliser ces privilèges pour créer des procédures ou des vues. À cette fin, les privilèges doivent nous être accordés directement. En savoir plus .

Lorsque nous y faisons référence, nous devons inclure le nom du schéma :

SQL>  select * from hr.employees;

Alternativement, nous pouvons créer un synonyme pour cela.

SQL>  create synonym employee_table for hr.employees;
SQL>  select * from employee_table;

Le synonyme n'est qu'une étiquette :il peut s'agir de tout ce que nous voulons, à condition qu'il soit unique dans notre schéma (et conforme aux conventions de nommage d'Oracle). En savoir plus .