Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie schreibe ich gespeicherte Prozeduren mit Tabellen aus einem anderen Schema?

Um eine Funktion oder Prozedur unter Verwendung einer Tabelle in einem anderen Schema zu schreiben, muss uns der Tabelleneigentümer die erforderliche Berechtigung erteilen. Zum Beispiel:

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

oder bitten Sie einen Superuser, dies für Sie zu tun:

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

Berechtigungen können Rollen gewährt werden, aber wir können diese Berechtigungen nicht verwenden, um Prozeduren oder Ansichten zu erstellen. Dazu müssen uns die Privilegien direkt eingeräumt werden. Weitere Informationen .

Wenn wir darauf verweisen, müssen wir den Schemanamen angeben:

SQL>  select * from hr.employees;

Alternativ können wir ein Synonym dafür erstellen.

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

Das Synonym ist nur eine Bezeichnung:Es kann alles sein, was wir wollen, vorausgesetzt, es ist innerhalb unseres Schemas eindeutig (und entspricht den Namenskonventionen von Oracle). Weitere Informationen .