1. ¿Qué es PL/SQL? Introducción a PL/SQL

19
Introducción a PL/SQL 21/11/2014 IISSI 1 1. ¿Qué es PL/SQL? 2. Bloque PL/SQL 3. Elementos básicos 4. Tipos de datos 5. Variables 6. Estructuras de control 7. Excepciones 8. Estructuras PL/SQL 9. Procedimientos y funciones 10.Triggers 11.Cursores 12.Secuencias 13.Packages © Diseño de Amador Durán Toro, 2011 © Diseño de Amador Durán Toro, 2011 Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre 2014 1. ¿Qué es PL/SQL? 2. Bloque PL/SQL 3. Elementos básicos 4. Tipos de datos 5. Variables 6. Estructuras de control 7. Excepciones 8. Estructuras PL/SQL 9. Procedimientos y funciones 10.Triggers 11.Cursores 12.Secuencias 13.Packages © Diseño de Amador Durán Toro, 2011 Introducción a PL/SQL Objetivos de este tema Conocer el lenguaje procedimental de Oracle PL/SQL. Conocer las estrategias para controlar adecuadamente las excepciones. Ser capaz de utilizar las estructuras de PL/SQL para implementar parte de la funcionalidad de un sistema informático. Introducción a la Ingeniería del Software y los Sistemas de Información 1 noviembre 2014

Transcript of 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Page 1: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 1

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

Grupo de Ingeniería del Software y Bases de Datos

Departamento de Lenguajes y Sistemas Informáticos

Universidad de Sevilla

Noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Objetivos de este tema

– Conocer el lenguaje procedimental de Oracle

PL/SQL.

– Conocer las estrategias para controlar

adecuadamente las excepciones.

– Ser capaz de utilizar las estructuras de PL/SQL

para implementar parte de la funcionalidad de un

sistema informático.

Introducción a la Ingeniería del Software y los Sistemas de Información 1noviembre 2014

Page 2: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 2

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• ¿Qué es PL/SQL?

– PL/SQL: Procedural Language/Structured Query

Language.

– Es un lenguaje propietario de Oracle que combina

• La manipulación de datos mediante sentencias DML

(INSERT, UPDATE, DELETE) y sentencias SELECT de

SQL.

• El procesamiento mediante sentencias imperativas

PL/SQL.

Introducción a la Ingeniería del Software y los Sistemas de Información 2noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Bloque PL/SQL

– Bloque lógico estructurado en tres partes.

• Las secciones DECLARE y EXCEPTION son

opcionales.

Introducción a la Ingeniería del Software y los Sistemas de Información 3noviembre 2014

Page 3: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 3

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Ejemplo de bloque anónimo PL/SQL

– Muestra por pantalla el mensaje Hello world!.

4Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Elementos básicos de PL/SQL

– Tipos de datos.

– Definición de variables.

– Estructuras de control.

• Condicional.

• Iterativo.

– Gestión de excepciones.

5Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 4: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 4

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Tipos de datos

– Principales (tipos atómicos)

• BINARY- INTEGER

– Enteros con signo.

• NUMBER [(precisión, escala)]

– Reales.

• CHAR[(longitud fija)]

– Cadenas de caracteres de longitud fija.

• VARCHAR2(longitud máxima)

– Cadenas de caracteres de longitud variable.

• LONG

– Cadenas de caracteres de longitud variable.

– Otros tipos (multivaluados)

• Collections (Arrays, Varrays, Tables), Records, etc.

6Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Declaración de variables y constantes

Nombre_variable [CONSTANT] tipo de dato

[NOT NULL][:=DEFAULT expresión]

– CONSTANT : Declara una constante. Su valor no

puede cambiar. Debe ser inicializada.

7Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 5: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 5

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Declaración de variables

– Propiedad %TYPE

• Declara una variable basada en:

– El tipo de dato de una columna de una tabla.

– El tipo de otra variable declarada previamente.

• Sintaxis:

– variable tabla.columna%TYPE;

– variable variable_PL/SQL%TYPE;

8Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Declaración de variables

– Propiedad %ROWTYPE

• Declara una variable registro:

– Representa una fila de una tabla o vista.

– No es necesario conocer el número y tipo de datos de

la tabla subyacente y evita hacer modificaciones

cuando la estructura de la tabla cambie.

• Sintaxis:

– variable tabla%ROWTYPE;

9Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 6: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 6

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control condicional

– IF THEN

– IF THEN ELSE

– IF THEN ELSIF

10Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control condicional

– Ejemplo:

11Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 7: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 7

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control iterativas

– Repite un número de veces un conjunto de

sentencias.

– Estructura repetitiva básica LOOP:

12Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control iterativas

– Ejemplo LOOP:

13Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 8: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 8

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control iterativas

– Esquema WHILE:

– Ejemplo:

14Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras de control iterativas

– Bucle FOR numérico con indicación de rango:

– Ejemplo:

15Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 9: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 9

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Una excepción es un error que ocurre durante la

ejecución del código.

16Introducción a la Ingeniería del Software y los Sistemas de Información

Ejecución Ejecución Ejecución Ejecución del códigodel códigodel códigodel código

Si ocurre Si ocurre Si ocurre Si ocurre un error un error un error un error se dispara se dispara se dispara se dispara una una una una excepciónexcepciónexcepciónexcepción

¿se¿se¿se¿secontrola controla controla controla el errorel errorel errorel error????

Se ejecutan las Se ejecutan las Se ejecutan las Se ejecutan las sentenciassentenciassentenciassentencias de gestión de gestión de gestión de gestión de la excepciónde la excepciónde la excepciónde la excepción

Se detiene el códigoSe detiene el códigoSe detiene el códigoSe detiene el código

No

noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Tipos de excepciones en PL/SQL

• Predefinidas: son las más comunes y solo hay que

tratarlas.

• Definidas por el usuario: hay que declararlas,

especificar en qué consisten y tratarlas.

17Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 10: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 10

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Excepciones predefinidas PL/SQL

• Permiten controlar las condiciones de error más

habituales.

• No es necesario declararlas, se utilizan cuando son

lanzadas por algún error determinado.

• Se generan implícitamente cuando se produce su

error asociado.

18Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Excepciones predefinidas PL/SQL

• Las más comunes son:

19Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 11: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 11

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Excepciones definidas por el usuario

• Se declaran en la sección declarativa de un bloque

PL/SQL y tienen asociado el tipo EXCEPTION.

• Se generan explícitamente mediante la instrucción

RAISE.

20Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

• Ejemplo de excepciones definida por el usuario

21Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 12: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 12

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Gestión de excepciones

– Claúsula when

• Se ejecuta para todas las excepciones que se

generen y no sean tratadas en ninguna otra claúsula

When.

– SQLCODE

• Función que devuelve el código de error actual.

– SQLERRM

• Función que devuelve el texto de mensaje del error

actual.

– RAISE_APPLICATION_ERROR(numero, mensaje)

• Permite crear mensajes más descriptivos asociados

al error que se produce.

23Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Estructuras PL/SQL*

– Combinan sentencias PL/SQL y sentencias SQL de

manera transparente.

• Procedimientos y funciones

• Disparadores (Triggers)

• Cursores

• Secuencias

• Paquetes (Packages)

24Introducción a la Ingeniería del Software y los Sistemas de Información

*Se verán con más detalle en las clases de laboratorio.

noviembre 2014

Page 13: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 13

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Procedimientos y funciones

• Bloques PL/SQL con nombre y lista de parámetros.

• Aumentan la modularidad y la reutilización de

código.

• Permiten almacenar en el SGBD Oracle parte de la

funcionalidad del sistema.

25Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Procedimientos y funciones

• La diferencia entre función y procedimiento es que

las funciones devuelven un valor. Esto permite que

se puedan invocar dentro de una expresión.

26Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 14: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 14

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Triggers

– Objetos procedimentales asociados a una tabla.

– Permiten, entre otros usos, implementar reglas de

negocio que, por su complejidad, no pueden ser

definidas mediante CHECK.

– La definición de un trigger sigue la regla ECA:

• EEEEvento:

– Comando DML de SQL que dispara el Trigger.

» Ej.: “Update”.

• CCCCondición::::

– Restricción que tiene que verificar las filas de la tabla.

» Ej.: “No se puede aumentar el salario más del 20%”.

• AAAAcción:

– Tarea específica que realiza el Trigger.

» Ej.: “Rechazar la modificación”.

27Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Triggers

28Introducción a la Ingeniería del Software y los Sistemas de Informaciónnoviembre 2014

Page 15: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 15

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

Introducción a la Ingeniería del Software y los Sistemas de Información

• Cursores

– Permiten almacenar en una variable el resultado

de una consulta SQL.

– Se usan para procesar fila a fila los registros de

consultas que devuelven más de una fila.

– Se declara como una variable más (en la sección

DECLARE) en bloques PL/SQL, procedimientos,

funciones, triggers, etc.

29noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Cursores

Introducción a la Ingeniería del Software y los Sistemas de Información 30noviembre 2014

Page 16: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 16

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Secuencias

– Facilitan la generación automática de series

numéricas.

– Los usos más frecuentes de las secuencias, son:

• La generación automática de claves primarias.

• Coordinar las claves de múltiples filas o tablas.

Introducción a la Ingeniería del Software y a los Sistemas de Información 31noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Secuencias

sec_alu.currval.currval.currval.currval número actual de una secuencia.

sec_alu.nextval.nextval.nextval.nextval siguiente valor de una secuencia.

Introducción a la Ingeniería del Software y a los Sistemas de Información 32noviembre 2014

Page 17: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 17

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Secuencias

– Ej. “Generar la clave primaria a la tabla alumnos”.

– El trigger se dispara cada vez que se produce el

evento INSERT en la tabla alumnos.

– Mediante la secuencia se genera un nuevo valor

sec_alu.nextval y se guarda en codigo_alu que es

la PK de la tabla alumnos.

Introducción a la Ingeniería del Software y a los Sistemas de Información 33noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Packages

– Permite encapsular o agrupar procedimientos,

funciones, cursores, variables, etc. que están

relacionados lógicamente y almacenarlos como

una unidad.

– Se especifica que funciones, variables, etc. son

públicas y cuáles privadas.

Introducción a la Ingeniería del Software y a los Sistemas de Información 34noviembre 2014

Page 18: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 18

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Packages

– Se crea en dos partes separadas:

• EspecificaciónEspecificaciónEspecificaciónEspecificación. Se declaran los constructores

públicos del package. Es la interface con las

aplicaciones de usuarios. Sólo incluye la parte de la

especificación; es decir nombre del procedimiento,

nombre y tipo de los argumentos y, solo en las

funciones, el nombre y tipo de dato del valor que

devuelven.

• CuerpoCuerpoCuerpoCuerpo. Se definen todos los procedimientos y

funciones (públicos y privados) y se declaran las

variables, funciones, etc. privadas.

Introducción a la Ingeniería del Software y a los Sistemas de Información 35noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Packages

– Especificación

Introducción a la Ingeniería del Software y a los Sistemas de Información 36noviembre 2014

Page 19: 1. ¿Qué es PL/SQL? Introducción a PL/SQL

Introducción a PL/SQL 21/11/2014

IISSI 19

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Packages

– Body

Introducción a la Ingeniería del Software y a los Sistemas de Información 37noviembre 2014

1. ¿Qué es PL/SQL?

2. Bloque PL/SQL

3. Elementos básicos

4. Tipos de datos

5. Variables

6. Estructuras de control

7. Excepciones

8. Estructuras PL/SQL

9. Procedimientos y funciones

10.Triggers

11.Cursores

12.Secuencias

13.Packages

© D

iseño d

e A

mador

Durá

n T

oro

, 2011

Introducción a PL/SQL

• Resumen estructuras PL/SQL*

– ProcedimientosProcedimientosProcedimientosProcedimientos: requisitos funcionales: generación

de informes…

– FuncionesFuncionesFuncionesFunciones: operaciones, cálculos.

– DisparadoresDisparadoresDisparadoresDisparadores (Triggers): reglas de negocio con

lógica demasiado compleja para implementarla

con check.

– CursoresCursoresCursoresCursores: Para mostrar las filas de una select en

un informe o en pantalla.

– SecuenciasSecuenciasSecuenciasSecuencias: integridad de la entidad y referencial

del modelo relacional (claves primarias y ajenas).

– Paquetes Paquetes Paquetes Paquetes (Packages): Modularidad, en IISSI se

utilizan para las organizar las pruebas.

38Introducción a la Ingeniería del Software y los Sistemas de Información

*Se verán con más detalle en las clases de laboratorio.

noviembre 2014