Este documento presenta ejemplos de funciones y procedimientos almacenados creados con PL/PgSQL en PostgreSQL. Incluye funciones para sumar números, buscar registros en una tabla, verificar valores y disparar triggers. También cubre temas de seguridad como la creación de usuarios, permisos en esquemas y tablas, y el uso de funciones con seguridad definida por el definidor.
Sesion10 - Funciones y procedimientos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion05 - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion06a - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 3. Lenguaje de Manipulación de Datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno manipula la información mediante el uso de la herramienta SQL*PLUS, sentencias SQL y funciones predefinidas en la base de datos Oracle.
Temario
3.1 Tema 5: LENGUAJE DE MANIPULACIÓN DE DATOS
3.1.1 Lenguaje SQL
3.1.2 Instrucciones DML y operadores
3.1.3 Consultas multitabla
3.1.3 Funciones Predefinidas
Sesion10 - Funciones y procedimientos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion05 - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 5. Programación Avanzada en ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas avanzados utilizando el lenguaje PL/SQL que soporten la lógica de negocio mediante la incorporación de funciones y procedimientos almacenados organizados en paquetes y a través de disparadores almacenados en la base de datos.
Temario
5.1. Tema 5: Programación dentro de una base de datos Oracle
5.1.1. Construcción de procedimientos y funciones almacenados.
5.1.2. Construcción de paquetes almacenados
5.1.3. Construcción de disparadores
Sesion06a - Manipulacion de datos (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 3. Lenguaje de Manipulación de Datos
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno manipula la información mediante el uso de la herramienta SQL*PLUS, sentencias SQL y funciones predefinidas en la base de datos Oracle.
Temario
3.1 Tema 5: LENGUAJE DE MANIPULACIÓN DE DATOS
3.1.1 Lenguaje SQL
3.1.2 Instrucciones DML y operadores
3.1.3 Consultas multitabla
3.1.3 Funciones Predefinidas
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.1 Tema 6: PROGRAMACIÓN PL/SQL
4.1.1 Introducción a Oracle PL/SQL
4.1.2 Tipos de datos en PL/SQL
4.1.3 Estructuras de Bloques de PL/SQL
4.1.4 Sentencias SQL en PL/SQL
Percona University 2023 - Herramientas Utiles Percona Toolkit.pdfFernandoMattera
En esta oportunidad, vamos a descubrir las poderosas herramientas indispensables para los administradores de bases de datos, SRE y Devops. Mostraremos su instalación y uso de las más comunes y esenciales utilidades que Percona ofrece
Javascript no para de expandirse y avanzar. Y ahora, con la llegada de EcmaScript 6, ciertos workflows y la forma de escribir código va a cambiar. Ahora los javascripters vamos a tener más herramientas en nuestras manos. Ya hay frameworks populares como Angular que sus futuras versiones vendrán en EcmaScript 6. ¿Porqué no hecharle un vistazo al futuro?
Charla impartida por Luis Calvo en la última edición de Codemotion (Madrid, Spain - Nov 21-22)
PostgreSQL: Un motor Impulsado por una comunidadSantiago Zarate
Una charla sobre PostgreSQL, La comunidad que se encuentra detras, paseo por algunas funcionalidades interesantes y finalmente recursos y donde encontrar mas informacion
2. PL/PgSQL
CREATE FUNCTION sumar(n1 numeric ,n2 numeric) RETURNS numeric AS
$$
DECLARE
numero numeric;
BEGIN
numero = n1+n2;
return numero;
END;
$$
language plpgsql
3. PL/PgSQL
CREATE FUNCTION buscar1(id_buscar integer) RETURNS record AS
$$
DECLARE
registro record;
BEGIN
select texto1,texto2 into registro from tabla1 where id=id_buscar;
return registro;
END;
$$
language plpgsql
4. PL/PgSQL
CREATE FUNCTION buscar2(text_buscar varchar) RETURNS setof record AS
$$
DECLARE
registros record;
BEGIN
for registros in(
select id,texto1,texto2
from tabla1 where texto1 like text_buscar
) loop
return next registros;
end loop;
END;
$$
language plpgsql
6. PL/PgSQL
CREATE OR REPLACE FUNCTION buscar3(text_buscar varchar)
RETURNS setof record AS
$$
DECLARE
registros record;
BEGIN
for registros in(
select id,texto1,texto2 from tabla1 where texto1 like text_buscar
) loop
return next registros;
end loop;
IF NOT FOUND THEN
RAISE EXCEPTION 'texto % no se consigue', text_buscar;
END IF;
END;
$$
language plpgsql
7. PL/PgSQL
CREATE OR REPLACE FUNCTION verificar(numero integer) returns boolean AS
$$
DECLARE
respuesta boolean;
BEGIN
IF ((numero>=0) AND (numero<=9)) THEN
respuesta=TRUE;
ELSE
respuesta=FALSE;
END IF;
RETURN respuesta;
END;
$$
LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION disparador2()returns trigger AS
$$
DECLARE
valor boolean;
BEGIN
valor=verificar(NEW.numero);
IF (valor=FALSE) THEN
RAISE EXCEPTION 'Valor incompatible--> %',NEW.numero;
END IF;
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
8. PL/PgSQL
CREATE OR REPLACE TRIGGER disparador BEFORE INSERT
ON tabla2 FOR EACH ROW EXECUTE PROCEDURE disparador2();
10. Seguridad
ponencia=# CREATE USER usuario1 UNENCRYPTED PASSWORD '123456';
CREATE ROLE
ponencia=# CREATE SCHEMA usuario1 CREATE TABLE tab1(x integer);
CREATE SCHEMA
ponencia=# INSERT INTO usuario1.tab1 VALUES (1);
INSERT 0 1
ponencia=# GRANT USAGE ON SCHEMA usuario1 to usuario1;
GRANT
ponencia=# SELECT x from usuario1.tab1;
x
---
1
(1 fila)
ponencia=# SET SESSION AUTHORIZATION usuario1;
SET
ponencia=> SELECT x from usuario1.tab1;
ERROR: permiso denegado a la relación tab1
ponencia=# SET SESSION AUTHORIZATION usuario1;
SET
ponencia=> SELECT x from usuario1.tab1;
x
---
1
(1 fila)
11. Seguridad
ponencia=> SET SESSION AUTHORIZATION postgres;
SET
ponencia=# REVOKE ALL PRIVILEGES ON SCHEMA PUBLIC FROM usuario1;
REVOKE
ponencia=> CREATE TABLE x();
ERROR: permiso denegado al esquema usuario1
ponencia=> CREATE TABLE usuario1.x();
ERROR: permiso denegado al esquema usuario1
ponencia=> d
Listado de relaciones
Esquema | Nombre | Tipo | Dueño
--------------+------------------+-----------------+----------
public |tabala2_id_seq | secuencia | postgres
public | tabla1 | tabla | postgres
public | tabla1_id_seq | secuencia | postgres
public | tabla2 | tabla | postgres
usuario1 | tab1 | tabla | postgres
(5 filas)
ponencia=> d 'tab?'
Tabla «usuario1.tab1»
Columna | Tipo | Modificadores
-------------+-----------+---------------
x | integer |
12. Seguridad
ponencia=> SET SESSION AUTHORIZATION postgres;
SET
ponencia=# REVOKE SELECT ON pg_user FROM public;
REVOKE
ponencia=# SET SESSION AUTHORIZATION usuario1;
SET
ponencia=> SELECT * FROM pg_user;
ERROR: permiso denegado a la relación pg_user
ponencia=> SET SESSION AUTHORIZATION postgres;
SET
13. Seguridad
CREATE OR REPLACE FUNCTION usuarios() RETURNS SETOF RECORD AS
$$
DECLARE
rep RECORD;
BEGIN
FOR rep in (
SELECT * FROM pg_user
) loop
RETURN NEXT rep;
end loop;
END;
$$
LANGUAGE plpgsql SECURITY DEFINER;
postgres=# SET SESSION AUTHORIZATION usuario1;
SET