Stored Procedures Firebird.

Slides:



Advertisements
Presentaciones similares
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
Advertisements

Insercion de datos..
UNIVERSIDAD NACIONAL DE LOJA Carrera de Ingeniería en Sistemas
Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
Ing. Ricardo Carlos Inquilla Quispe
UNITA - IBARRA TRIGGERS
Lenguaje Estructurado de Consultas
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
TRIGGERS EN ORACLE 8 J. Iriarte S. España
Triggers(Disparadores)
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
Sentencias DDL y DML PostgreSQL. Base de Datos I – Fundamentos Básicos PostgreSQL PostgreSQL es un servidor de base de datos relacional libre bajo la.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
6 Triggers ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
6 Triggers ORACLE - III Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
UNIDAD IV. Diseño de Base de Datos Relacionales
ESTRUCTURAS DE DATOS Y ALGORITMOS Samuel Peñaló
1 SQL (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero 2009.
Administración de Sistemas Gestores de Bases de Datos.
COMANDOS BÁSICOS MYSQL BASES DE DATOS 2 UNIVERSIDAD DE LA AMAZONIA.
Conferencia 12. Temas Avanzados de Integridad de Bases de Datos.
Conferencia 8. Lenguaje PL/pgSQL.
Introducción a la Programación Multimedial
PL/SQL Francisco Moreno Universidad Nacional.
SQL: Structured Query Language
PL/SQL Francisco Moreno Universidad Nacional.
Convenciones de nomenclatura y diseño
Características Objeto Relacionales en Oracle
Lenguaje de manipulación de datos
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
Seguimiento y Avance.
Programación 1 Curso: 5to. I TT
SQL 2: Structured Query Language
SQL: structured Query Language
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
Restricciones de integridad en el modelo relacional
5. SQL Procedural.
Bucles y estructuras de decisión
Oracle Pl/SQl Developer – Nivel 1
Lenguaje de consulta estructurado
Estructuras de control en PHP
SOFTWARE.
BD Activas: Motivación
Metodología de la Programación
Unidad V :- Integridad de datos.
Ing. Francisco Rodríguez
Bucles y estructuras de decisión
Estructuras de Control
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
Características Objeto Relacionales en Oracle
Informática Ingeniería en Electrónica y Automática Industrial
TRIGGERS VISTAS Y PROCESOS Ing. Fabiola Nilda Perez Oliver
Aidan Hogan CC Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan.
CC Bases de Datos Otoño Clase 10: SQL: Vistas y Disparadores
Ing. Francisco Rodríguez
Metodología de la Programación
Fundamentos de las Base de Datos. Contenido Que es una Base de Datos. La diferencia entre datos e informacion. Clasificacion de las base de datos. Importancia.
Transcripción de la presentación:

Stored Procedures Firebird

En las tablas se guardan los datos En los stored procedures y en los triggers se procesan los datos Con las vistas se consultan los datos

Los stored procedures (procedimientos almacenados) son los equivalentes a las rutinas, procedimientos, o funciones disponibles en casi todos los lenguajes de programación , allí se utilizan los datos que se encuentran en las tablas, se realizan operaciones aritméticas o lógicas sobre esos datos y se devuelve el resultado de ese procesamiento.

Los stored procedures pueden recibir cero, uno, o varios parámetros de entrada y devolver cero, uno, o varios parámetros de salida.

Parámetros de salida de un procedure de ejecución execute procedure miproc(lista parametros) returning_values(lista de variables de output) ejemplo: execute procedure miproc('hola firebird') returning_values(:vRetorno)

En Firebird hay dos clases de stored procedures: Ejecutables Seleccionables

Los stored procedures ejecutables son llamados de manera similar a rutinas, procedimientos o funciones en los lenguajes de programación, por ejemplo: EXECUTE PROCEDURE MiStoredProcedureEjecutable(123, ‘Firebird me gusta’) Los stored procedures ejecutables pueden devolver cero filas o una fila, jamás pueden devolver más de una fila.

Los stored procedures seleccionables en cambio son utilizados como si fueran tablas en un SELECT, por ejemplo: SELECT * FROM MiStoredProcedureSeleccionable(123, ‘Firebird me gusta’) Los stored procedures seleccionables pueden devolver cero filas, una fila, o muchas filas

Cuando finaliza un stored procedure ejecutable devuelve todos los parámetros de salida. Todos esos parámetros de salida son devueltos en una fila y solamente en una fila, jamás en más de una fila

Cada vez que un stored procedure seleccionable ejecuta el comando SUSPEND le devuelve al SELECT que lo llamó todos los parámetros de salida, con los valores que tienen asignados en ese momento. O sea que devuelve una fila cada vez que encuentra el comando SUSPEND.

Ejemplo de un stored procedure ejecutable: CREATE PROCEDURE EXISTE_NUMERO_DOCUMENTO ( NroDoc TYPE OF COLUMN VENTAS.NRODOC ) RETURNS( DocumentoExiste TYPE OF D_BOOLEAN) AS DECLARE VARIABLE lcNroDoc TYPE OF COLUMN VENTAS.NRODOC; BEGIN SELECT COALESCE(V.NRODOC, '') FROM VENTAS V WHERE V.NRODOC = :NroDoc INTO :lcNroDoc; ftcDocumentoExiste = 'F'; IF (NroDoc = lcNroDoc) THEN DocumentoExiste = 'V'; END;

Ejemplo de un stored procedure seleccionable CREATE PROCEDURE PRODUCTOS_CLASIFICADOS () RETURNS ( Resultado SMALLINT ) AS DECLARE VARIABLE lnPreVta TYPE OF COLUMN PRODUCTOS.PREVTA; BEGIN FOR SELECT PREVTA FROM PRODUCTOS INTO :lnPreVta DO BEGIN IF (lnPreVta < 1000) THEN Resultado = 1; IF (lnPreVta >= 1000 AND lnPreVta <= 50000) THEN Resultado = 2; IF (lnPreVta > 50000) THEN Resultado = 3; SUSPEND; END

Ejecutar un store procedure seleccionable SELECT * FROM PRODUCTOS_CLASIFICADOS

Los stored procedures se utilizan para procesar datos Resumiendo: Los stored procedures se utilizan para procesar datos Hay dos clases de stored procedures: Ejecutables Seleccionables

Los stored procedures ejecutables son llamados con EXECUTE PROCEDURE y pueden devolver cero filas o una fila. Los stored procedures seleccionables son llamados con SELECT y pueden devolver cero filas, una fila o muchas filas.

Los stored procedures ejecutables cuando finalizan devuelven los parámetros de salida en una fila. Los stored procedures seleccionables devuelven los parámetros de salida cada vez que encuentran el comando SUSPEND. Cuando finaliza un stored procedure ejecutable devuelve sus parámetros de salida, con los valores que tienen en ese momento. Cada vez que un stored procedure seleccionable encuentra al comando SUSPEND devuelve sus parámetros de salida con los valores que tienen en ese momento

Triggers Firebird

Se está insertando una nueva fila Se está borrando una fila Los triggers (disparador en castellano) son rutinas, que se ejecutan en forma automática cuando se cumple alguna de estas condiciones: Se está insertando una nueva fila Se está borrando una fila Se está actualizando una fila

Para actualizar otra tabla cuyos datos dependen de esta tabla Se usan para Asegurarnos que en la tabla se guarden datos válidos y solamente datos válidos. Para actualizar otra tabla cuyos datos dependen de esta tabla

Los triggers se “disparan” automáticamente: Antes de la inserción, borrado, actualización Después de la inserción, borrado, actualización

CONSIDERACIONES Los triggers no pueden ejecutarse con un "execute trigger“ Los triggers pueden ejecutar procedimientos de selección o de ejecución Los procedimientos no pueden ejecutar un trigger en forma directa, pero si pueden insertar, borrar o actualizar una o mas tuplas y ello provocaría la ejecución automática del trigger Un trigger se dispara 1 vez por cada tupla borrada, insertada o actualizada

Los triggers que se disparan antes sirven para evitar que la tabla tenga datos inválidos. Los triggers que se disparan después sirven para actualizar otras tablas cuyos datos dependen de esta tabla. Lo peor que le podría ocurrir a una tabla es tener datos inválidos o incorrectos dentro suyo.

En los triggers se pueden usar dos "alias" o seudónimos de tupla llamadas NEW y OLD NEW nos indica el valor que tiene una columna antes de ser insertada en la tabla. OLD nos indica el valor que tiene actualmente la columna en la tabla. O sea el valor que está grabado en ella. NEW y OLD son útiles para comparar el valor que queremos introducir con el valor que ya está guardado en una columna.

IF (NEW.PRD_PREVTA < OLD.PRD_PREVTA) THEN Por ejemplo Para detectar si el nuevo precio de venta es menor que el actual precio de venta IF (NEW.PRD_PREVTA < OLD.PRD_PREVTA) THEN

IF (NEW.PRD_PREVTA <= 0) THEN Para detectar si el nuevo precio de venta es cero o menor que cero podríamos escribir: IF (NEW.PRD_PREVTA <= 0) THEN

Para detectar si el nombre del producto está vacío IF (CHAR_LENGTH(TRIM(NEW.PRD_NOMBRE)) = 0) THEN

Para detectar si el código del producto es NULL IF (NEW.PRD_CODIGO IS NULL) THEN

En el caso de encontrar un error se debería generar una EXCEPCIÓN y así la fila no se insertará, ni se borrará, ni se actualizará.

Una tabla puede tener muchos triggers, el orden en que se ejecutan viene dado por el valor de POSITION. El primer trigger que se ejecuta es el que tiene POSITION 0, luego se ejecuta el que tiene POSITION 1, luego el que tiene POSITION 2, etc.

Orden de ejecucion de los triggers en una transacción: a) trigger de before b) se aplican / ejecutan todos los constraints (reglas de integridad declarativas) primary key, foreign key, domain, check, unique c) trigger de after si a) ok entonces b) si b) ok entonces c) si c) ok entonces transacción ok. dentro de a) y b) el orden de ejecucion de triggers es acorde con position, si position no se indica, no puede determinarse un orden de ejecucion (se van a ejecutar pero no se asegura un orden determinado).

Insertar una nueva fila Resumiendo: Los triggers son código que se ejecuta automáticamente cuando se quiere: Insertar una nueva fila Borrar una fila Actualizar una fila

Los triggers pueden dispararse: Sirven para asegurar que en una tabla solamente se introduzcan datos válidos y para actualizar otras tablas cuyos datos dependen de esta tabla Los triggers pueden dispararse: Antes de la inserción, borrado, actualización Después de la inserción, borrado, actualización

Dentro de los triggers se pueden usar dos alias: NEW y OLD NEW es el valor que tendrá la columna si se realiza la inserción o actualización exitosamente OLD es el valor que actualmente tiene la columna

Si se produce un error en la ejecución de un trigger se debe elevar una excepción para que esa fila no sea insertada ni borrada ni actualizada. Una tabla puede tener muchos triggers, el orden en el cual se ejecutan lo determina la variable POSITION