sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo escribir procedimientos almacenados usando tablas de otro esquema?

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 .