Similar a las funciones PL/SQL, un procedimiento almacenado es un autocontenido subprograma que está destinado a realizar algunas tareas específicas. También similares a las funciones, los procedimientos se denominan bloques PL/SQL, por lo que pueden reutilizarse porque se almacenan en la base de datos como un objeto de la base de datos. Pero a diferencia de las funciones PL/SQL, un procedimiento almacenado no devuelve ningún valor .
Sintaxis de procedimientos almacenados PL/SQL
CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List) IS [AUTHID DEFINER | CURRENT_USER] Declare statements BEGIN Executable statements END procedure name; /
La sintaxis anterior del procedimiento almacenado PL/SQL es bastante similar a la sintaxis de las funciones PL/SQL que vimos en el último tutorial de PL/SQL. Excepto por dos cosas:
- No hay cláusula de devolución.
Una diferencia fundamental entre una función PL/SQL y un procedimiento almacenado es que, a diferencia de las funciones, un procedimiento almacenado no devuelve ningún valor.
- Cláusula AUTHID.
La cláusula AUTHID se utiliza para establecer el modelo de autoridad para los procedimientos PL/SQL. Esta cláusula tiene dos banderas.
- DEFINICIÓN y
- USUARIO_ACTUAL
Como esta cláusula es opcional, en caso de que no utilice la cláusula AUTHID, Oracle Engine establecerá la autoridad (AUTHID) en DEFINER de forma predeterminada para usted. Ahora, debe estar preguntándose cuáles son estos derechos DEFINER y CURRENT_USER?
DEFINICIÓN derecha: El derecho definidor es el derecho predeterminado asignado al procedimiento por el motor de Oracle. Este derecho significa que cualquier persona con Privilegio de ejecución en el procedimiento actúa como si fuera el propietario del esquema en el que se crea el privilegio.
CURRENT_USER derecha: Establecer el nivel de autoridad de un procedimiento almacenado en el derecho current_user anula el derecho predeterminado que es definidor y lo cambia a los derechos de invocador.
Autorización de derecho de invocador significa que usted llama al procedimiento para actuar sobre sus datos locales y requiere que replique los objetos de datos en cualquier esquema participante.
Algunos puntos adicionales sobre el procedimiento almacenado
- Puede definir un procedimiento con o sin parámetros formales.
- Un parámetro puede ser pasar por valor o pasar por referencia .
- Un procedimiento será un procedimiento de paso por valor cuando no especifique el modo de parámetro porque usa el modo IN predeterminado.
Eso es todo en Introducción a los procedimientos almacenados de PL/SQL. Supongo que también disfrutará leyendo estos blogs mencionados a continuación. Todos los blogs están escritos teniendo en cuenta la entrevista de trabajo y la certificación de la base de datos Oracle, asegúrese de consultarlos.
- ¿Diferencias entre la función PL/SQL y los procedimientos almacenados PL/SQL?
- ¿Qué son los modos de parámetros en las funciones y procedimientos de PL/SQL?
- ¿Qué son los parámetros formales y reales?
Recuerda siempre:puedes ayudar a otros a aprender y apoyarme a mí y a mi canal, así como a este blog, compartiéndolo con tus amigos en tus redes sociales.
Eso es todo chicos. Gracias por leer. ¡Cuídate y que tengas un gran día!