PL/SQL es un lenguaje de programación procedimental diseñado para operar en entornos Oracle.
Con este lenguaje podemos hacer:
- Automatizar tareas complejas dentro de la base de datos mediante procedimientos y funciones.
- Implementar reglas de negocio complejas con triggers y validaciones.
- Gestionar transacciones y manejar errores de manera robusta.
- Manipular conjuntos de datos utilizando cursores.
- Integrar lógica de negocios en aplicaciones que interactúan con bases de datos Oracle.
En esta ocasión veremos cómo crear Stored Procedures o procedimientos almacenados. Los cuales son procedimiento que pueden o no devolver algún valor (contrario a las funciones que siempre devuelven algún valor). Estos podrán, una vez que sean creado, ser invocados en tus scripts.
La sintaxis para crear un Stored Procedure es la siguiente:
-- Sintaxis para crear un Stored Procedure CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] IS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [procedure_name];
Para su invocación debemos anteponer la palabra ``CALL`` seguido del nombre.
CALL miprocedimiento(); CALL miprocedimiento(arg1, arg2, argN);
En un anterior post vimos cómo crear bloques PL/SQL. Un Stored procedure contiene bloques que harán determinada tarea que nosotros definamos.
BEGIN DBMS_OUTPUT.PUT_LINE('Hola desde PL/SQL'); END;
Ejemplo 1. Crear un Stored procedure para mandar un mensaje a pantalla.
hola.sql
CREATE OR REPLACE PROCEDURE hola IS nombre VARCHAR2(6):='Thomas'; BEGIN IF nombre IS NOT NULL THEN dbms_output.put_line('Hola, '||nombre); END IF; END; /
Lo invocamos de está forma:
SET VERIFY OFF; SET SERVEROUTPUT ON; -- Invocar Stored procedure CALL hola;
Ejemplo 2. Crear un Stored Procedure para ver la versión de Oracle instalada.
mi_proc.sql
CREATE OR REPLACE PROCEDURE mi_proc IS version_inst VARCHAR(200); consulta VARCHAR(200):='SELECT BANNER FROM v$version'; BEGIN dbms_output.put_line('Version instalada: '); -- Ejecutamos consulta EXECUTE IMMEDIATE consulta INTO version_inst; dbms_output.put_line(version_inst); END; /
Lo invocamos:
SET VERIFY OFF; SET SERVEROUTPUT ON; CALL mi_proc;
Enlaces:
https://codemonkeyjunior.blogspot.com/2023/07/plsql-bloques.htmlhttps://www.plsqltutorial.com/
No hay comentarios:
Publicar un comentario