Top Banner
1-1 Introducción a SQL y PL/SQL
103

Intro sql y plsql

May 27, 2015

Download

Technology

olsoftware

Curso básico ORACLE SQL y PL/SQL
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Intro sql y plsql

1-1

Introducción a SQL y PL/SQL

Page 2: Intro sql y plsql

1-2

Introducción a SQL y PL/SQL

Introducción a SQL y PL/SQL

Orlando Lara Betancourt

Page 3: Intro sql y plsql

1-3

Introducción a SQL y PL/SQL

Contenido

1. Introducción a Bases de Datos

2. Creación y Manejo de Objetos de Bases de Datos

3. Sentencias Basicas de SQL

4. Manipulación de Datos con SQL

5. Control de Acceso

6. Fundamentos de PL/SQL

7. Estructuras de Control

8. PL/SQL y su interacción con Oracle

9. Manejo de Errores

10.Creación de SubProgramas

Page 4: Intro sql y plsql

1-4

Introducción a SQL y PL/SQL

Introducción a Bases de Datos

Page 5: Intro sql y plsql

1-5

Introducción a SQL y PL/SQL

Overview

Conceptos Basicos

Modelo Entidad Relación (MER)

Modelo Relacional de Datos (MRD)

Bases de Datos Oracle

Arquitectura de Bases de Datos Oracle

Page 6: Intro sql y plsql

1-6

Introducción a SQL y PL/SQL

Conceptos Basicos

Base de Datos: Conjunto de datos estructurados,

almacenados que se consultan a través de

aplicaciones.

Diseño de Bases de datos

– Conceptual: Especificación de la realidad

– Lógico: Descripcion de la estructura de la BD

– Fisico: Implementación de la Estructura

Page 7: Intro sql y plsql

1-7

Introducción a SQL y PL/SQL

Modelo Entidad Relación (MER)

Entidad: Objeto sobre el cual se puede tener información.

Atributo: Caracteristica de la entidad

– Dominio: Conjunto de valores de un atributo

Relación: Asociación entre dos o mas Entidades

– Cardinalidad: Numero de correspondencias.

Identificador: Atributo que identifica una única ocurrencia de la Entidad.

Page 8: Intro sql y plsql

1-8

Introducción a SQL y PL/SQL

Modelo Entidad Relación (MER)

Factura# No FactFechaValor

1:n 1:1

Cliente# CedulaNombreDireccionTelefonoSexo (M/F)

Tiene Pertenece

Page 9: Intro sql y plsql

1-9

Introducción a SQL y PL/SQL

Modelo Relacional de Datos (MRD)

Estructura Fisica de la Base de Datos

Entidades Tablas: Singular a Plural

Atributos Campos

Identificador Campo Clave

Normalización: Proceso estandar para evitar:

– Redundancia de Información

– Inconsistencia de Información

– Perdida de Información en Cascada

– Anomalias de Inserción

Page 10: Intro sql y plsql

1-10

Introducción a SQL y PL/SQL

Modelo Relacional de Datos (MRD)

Facturas# No Fact n(4) NNFecha dateValor n(9,2)Cedula n(10) NN

1:n 1:1

Clientes# Cedula n(10) NNNombre v(50) NNDireccion v(80)Telefono v(20)Sexo (M/F) v(1)

Tiene Pertenece

Page 11: Intro sql y plsql

1-11

Introducción a SQL y PL/SQL

Bases de Datos Oracle

Almacenamiento de Datos

Manipulación de Datos

Consulta de Datos

Page 12: Intro sql y plsql

1-12

Introducción a SQL y PL/SQL

Bases de Datos Oracle

RDBMS (Relational Database Management System)

Administración de recursos (Hardware) del Sistema.

Garantizar el maximo aprovechamiento de los recursos.

Esta formado por dos Elementos:

– Datos: Conforman la propia BD y son de dos tipos:

– Diccionario de datos: BD de los Objetos y seguridad

– Datos: Datos del Usuario

– Tratamientos: Aplicaciones para el manejo de los datos (SQL Plus, DBA Studio, OEM, Forms, etc)

Page 13: Intro sql y plsql

1-13

Introducción a SQL y PL/SQL

Aquitectura de la Base de Datos Oracle

Page 14: Intro sql y plsql

1-14

Introducción a SQL y PL/SQL

Aquitectura de la Base de Datos Oracle

Page 15: Intro sql y plsql

1-15

Introducción a SQL y PL/SQL

Aquitectura de la Base de Datos Oracle

DBWnLGWRSMONPMONCKPT

Mandatory Background Processes

Page 16: Intro sql y plsql

1-16

Introducción a SQL y PL/SQL

Aquitectura de la Base de Datos Oracle

Page 17: Intro sql y plsql

1-17

Introducción a SQL y PL/SQL

Resumen

Conceptos de Bases de Datos

Modelo Entidad Relación

Modelo Relacional de Datos

Caracteristicas de un RDBMS

Arquitectura de la Base de Datos Oracle

Page 18: Intro sql y plsql

1-18

Introducción a SQL y PL/SQL

Creación y Manejo de Objetos de Bases de Datos

Page 19: Intro sql y plsql

1-19

Introducción a SQL y PL/SQL

Overview

Principales Objetos de la Base de Datos

Creación de Tablas

Tipos de Datos en Oracle

Alterando Tablas

Instrucciones Drop y Truncate

Creación de constraints

Creación de Vistas

Consultando datos de una vista

Creación y Uso de Secuencias

Creación y Uso de Indices

Creación de Sinonimos

Page 20: Intro sql y plsql

1-20

Introducción a SQL y PL/SQL

Principales Objetos de la Base de Datos

Tablas

Vistas

Secuencias

Indices

Sinonimos

Procedimientos

Funciones

Paquetes

Page 21: Intro sql y plsql

1-21

Introducción a SQL y PL/SQL

Creacion de Tablas

Create table Empleados (Codigo number(10) not null primary key,Nombre varchar2(50) not null,Salario number (9,2) default 0,Depto number(4));

Codigo Nombre Salario Depto

Page 22: Intro sql y plsql

1-22

Introducción a SQL y PL/SQL

Tipos de Datos

Tipo Carácter– CHAR– LONG– NCHAR– NVARCHAR2– VARCHAR2

Tipo Numerico

– NUMBER (L,P)

Tipo Fecha

– DATE

LOB

Page 23: Intro sql y plsql

1-23

Introducción a SQL y PL/SQL

Alterando Tablas

Alter table Empleados Add (Comision number(9,2));

Codigo Nombre Salario Depto Comision

Page 24: Intro sql y plsql

1-24

Introducción a SQL y PL/SQL

Instrucciones Drop y Truncate

Drop table Empleados;

Elimina la definición de la tabla.

Truncate table Empleados;

Elimina los datos de la tabla

Page 25: Intro sql y plsql

1-25

Introducción a SQL y PL/SQL

Creación de constraints

ALTER TABLE EMPLEADOS ADD (

CONSTRAINT PK_EMPLEADOS PRIMARY KEY (CODIGO));

ALTER TABLE EMPLEADOS ADD (

CONSTRAINT FK_EMPL_DPTO FOREIGN KEY (DEPTO) REFERENCES DEPTOS (CODIGO));

Page 26: Intro sql y plsql

1-26

Introducción a SQL y PL/SQL

Creación de Vistas

CREATE OR REPLACE VIEW EMP_DEPTO AS

Select Empleados.Codigo CodEmp,

Empleados.Nombre NomEmp,

Empleados.Salario SalEmp,

Deptos.Nombre Depto

From Empleados,Deptos

Where Empleado.Depto = Deptos.Codigo;

Page 27: Intro sql y plsql

1-27

Introducción a SQL y PL/SQL

Consultando Datos de una Vista

Select CodEmp,NomEmp,

SalEmp,Depto

From EMP_DEPTO;

CodEmp NomEmp SalEmp Depto

10 Andres Escobar R 10000 Ventas

20 Carlos Velasquez 5000 Planeación

30 Juan Manuel Rivas 20000 Ventas

40 Jose Juaquin Velez 50000 Recursos Humanos

50 Mario Hernandez 1000 Ventas

Page 28: Intro sql y plsql

1-28

Introducción a SQL y PL/SQL

Creación y Uso de las Secuencias

CREATE SEQUENCE SEQEMPLEADOS

START WITH 1

INCREMENT BY 1

MAXVALUE 1E27

MINVALUE 1;

Page 29: Intro sql y plsql

1-29

Introducción a SQL y PL/SQL

Creación y Uso de Indices

CREATE UNIQUE INDEX IDX_CODEMP ON EMPLEADOS (CODIGO);

CREATE INDEX IDX_NOMEMP ON

EMPLEADOS (NOMBRE);

Page 30: Intro sql y plsql

1-30

Introducción a SQL y PL/SQL

Creacion de Sinonimos

CREATE SYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA;

CREATE PUBLIC DATABASE LINK DESA

CONNECT TO DESA

IDENTIFIED BY ud953_f1

USING 'DESA';

CREATE PUBLIC SYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA;

Page 31: Intro sql y plsql

1-31

Introducción a SQL y PL/SQL

Resumen

Objetos de Bases de Datos

Tablas

Constraints

Vistas

Secuencias

Indices

Sinonimos

Page 32: Intro sql y plsql

1-32

Introducción a SQL y PL/SQL

Sentencias Basicas de SQL

Page 33: Intro sql y plsql

1-33

Introducción a SQL y PL/SQL

Overview

Instrucción Select

Limitando la cantidad de registros (Where)

Desplegar datos de multiples tablas (Uso de Joins)

Instrucción Order by

Page 34: Intro sql y plsql

1-34

Introducción a SQL y PL/SQL

Instrucción Select

Select *

From Empleados;

Empleados#CodigoNombreSalario

Codigo Nombre Salario

10 Andres Escobar R 10000

20 Carlos Velasquez 5000

30 Juan Manuel Rivas 20000

40 Jose Juaquin Velez 50000

50 Mario Hernandez 1000

Page 35: Intro sql y plsql

1-35

Introducción a SQL y PL/SQL

Limitando la Cantidad de Registros

Select *

From Empleados

Where Salario > 10000;

La clausula Where determina la condición de la consulta

Codigo Nombre Salario

30 Juan Manuel Rivas 20000

40 Jose Juaquin Velez 50000

Page 36: Intro sql y plsql

1-36

Introducción a SQL y PL/SQL

Desplegar Datos de Multiples Tablas

Codigo Nombre

10 Recursos Humanos

20 Ventas

30 Planeación

Empleados#CodigoNombreSalarioDepto

Deptos#CodigoNombre

1:n 1:1

Tiene Pertenece

Page 37: Intro sql y plsql

1-37

Introducción a SQL y PL/SQL

Desplegar Datos de Multiples Tablas

Select Empleados.Codigo,

Empleados.Nombre,

Empleados.salario,

Deptos.Nombre Depto

From Empleados,Deptos

Where Empleados.Depto = Deptos.Codigo;

Codigo Nombre Salario Depto

10 Andres Escobar R 10000 Ventas

20 Carlos Velasquez 5000 Planeación

30 Juan Manuel Rivas 20000 Ventas

40 Jose Juaquin Velez 50000 Recursos Humanos

50 Mario Hernandez 1000 Ventas

Alias

Page 38: Intro sql y plsql

1-38

Introducción a SQL y PL/SQL

Instrucción Order By

Select Empleados.Codigo,

Empleados.Nombre,

Empleados.Salario,

From Empleados

Order by Empleados.Salario;

Codigo Nombre Salario Depto

50 Mario Hernandez 1000 Ventas

20 Carlos Velasquez 5000 Planeación

10 Andres Escobar R 10000 Ventas

30 Juan Manuel Rivas 20000 Ventas

40 Jose Juaquin Velez 50000 Recursos Humanos

Page 39: Intro sql y plsql

1-39

Introducción a SQL y PL/SQL

Resumen

Instrucciones básicas de SQL para consultar datos.

– Select

– Where

– Alias

– Joins

– Order by

Page 40: Intro sql y plsql

1-40

Introducción a SQL y PL/SQL

Manipulación de Datos con SQL

Page 41: Intro sql y plsql

1-41

Introducción a SQL y PL/SQL

Overview

Insertando Datos (Insert)

Actualizando Datos (Update)

Eliminando Información (Delete)

Control de Transacciones (Commit - Rollback)

Page 42: Intro sql y plsql

1-42

Introducción a SQL y PL/SQL

Insertando Datos (insert)

Insert into Empleados

Values (60,’Jota Mario Valencia’,

3000,10);

Codigo Nombre Salario Depto

60 Jota Mario Valencia 3000 10

Empleados

Page 43: Intro sql y plsql

1-43

Introducción a SQL y PL/SQL

Insertando Datos (insert)

Insert into Empleados (Codigo,Nombre,Salario,Depto)

Values (60,’Jota Mario Valencia’,

3000,10);

Codigo Nombre Salario Depto

60 Jota Mario Valencia 3000 10

Empleados

Page 44: Intro sql y plsql

1-44

Introducción a SQL y PL/SQL

Actualizando Datos (update)

Update Empleados

Set Depto = 10;

Codigo Nombre Salario Depto

10 Andres Escobar R 10000 10

20 Carlos Velasquez 5000 10

30 Juan Manuel Rivas 20000 10

40 Jose Juaquin Velez 50000 10

50 Mario Hernandez 1000 10

Page 45: Intro sql y plsql

1-45

Introducción a SQL y PL/SQL

Eliminado Datos (delete)

Delete Empleados

Where Codigo = 10;

Codigo Nombre Salario Depto

20 Carlos Velasquez 5000 10

30 Juan Manuel Rivas 20000 10

40 Jose Juaquin Velez 50000 10

50 Mario Hernandez 1000 10

Page 46: Intro sql y plsql

1-46

Introducción a SQL y PL/SQL

Control de Transacciones

Commit

– Commit;

Rollback

– Rollback;

Save Point

– Save Point <Nombre>

Page 47: Intro sql y plsql

1-47

Introducción a SQL y PL/SQL

Resumen

Instrucciones SQL para manipular datos.

– Insert

– Update

– Delete

– Commit

– Rollback

Page 48: Intro sql y plsql

1-48

Introducción a SQL y PL/SQL

Control de Acceso

Page 49: Intro sql y plsql

1-49

Introducción a SQL y PL/SQL

Overview

Conceptos:

– Usuarios

– Privilegios

– Roles

Otorgar (Grant) y Revocar (Revoke) Privilegios a los objetos de la Base de Datos

Page 50: Intro sql y plsql

1-50

Introducción a SQL y PL/SQL

Conceptos

Usuarios: SYS y SYSTEM

CREATE USER ORLANDOL

IDENTIFIED BY VALUES 'ECE5A72B8C80CBE3’;

Privilegios- Tablas- Vistas- Secuencias- Procedimientos- Funciones- Paquetes

DML (Data Manipulation)DDL (Data Definition)

Labor de DBA

Page 51: Intro sql y plsql

1-51

Introducción a SQL y PL/SQL

Conceptos

Roles: Facilita la administración

– Roles de Aplicación: Conjunto de privilegios necesarios para ejecutar la Aplicación.

– Roles de Usuario: Se crea un role para un grupo de usuarios con privilegios comunes.

CREATE ROLE ROLGAS;

Page 52: Intro sql y plsql

1-52

Introducción a SQL y PL/SQL

Otorgar (Grant) y Revocar (Revoke) Accesos a los objetos de la Base de Datos

GRANT DELETE, INSERT, SELECT, UPDATE

ON ACTA TO ROLGAS;

GRANT EXECUTE

ON PROLEGALIZAR TO JUANCM;

REVOKE DELETE, INSERT, SELECT, UPDATE

ON ACTA FROM ROLGAS;

Page 53: Intro sql y plsql

1-53

Introducción a SQL y PL/SQL

Ejemplo de Uso de Seguridad

Page 54: Intro sql y plsql

1-54

Introducción a SQL y PL/SQL

Resumen

Usuarios

Roles

Privilegios

Manejo de Seguridad de Datos en Oracle

Page 55: Intro sql y plsql

1-55

Introducción a SQL y PL/SQL

Fundamentos de PL/SQL

6

Page 56: Intro sql y plsql

1-56

Introducción a SQL y PL/SQL

Overview

Declaración de Variables

– DEFAULT

– NOT NULL

– %TYPE

– %ROWTYPE

Convenciones de Nombres de variables

Asignación de Valores a las variables

Expresiones y Comparaciones

Funciones del Lenguaje

Page 57: Intro sql y plsql

1-57

Introducción a SQL y PL/SQL

Declaración de Variables

sbCadena varchar2(50);

nuValor number (9,2);

dtFecha date;

blExiste boolean;

nuCodigo Empleados.Codigo%type;

rtEmp Empleados%rowtype;

nuValor number(9,2) DEFAULT –1;

sbCadena varchar2(50) NOT NULL := ‘CADENA’;

Page 58: Intro sql y plsql

1-58

Introducción a SQL y PL/SQL

Convenciones de Nombres de Variables

sb Cadena

nu Numerico

dt Fecha

bl Booleano

rt Registro

cu Cursores

cn Constante

Page 59: Intro sql y plsql

1-59

Introducción a SQL y PL/SQL

Asignación de Valores a las variables

nuValor Empleados.Codigo%type;

...

nuValor := 25

select Codigo

into nuValor

from Empleados

where Codigo = 25;

Page 60: Intro sql y plsql

1-60

Introducción a SQL y PL/SQL

Expresiones y Comparaciones

Precedencia de Operación

Page 61: Intro sql y plsql

1-61

Introducción a SQL y PL/SQL

Expresiones y Comparaciones

Operaadores Logicos

Page 62: Intro sql y plsql

1-62

Introducción a SQL y PL/SQL

Expresiones y Comparaciones

Operadores de Comparación

Page 63: Intro sql y plsql

1-63

Introducción a SQL y PL/SQL

Expresiones y Comparaciones

IS NULL

– IF Variable IS NULL THEN ...

BETWEEN

– 45 BETWEEN 38 AND 44

IN y NOT IN

– WHERE CODIGO IN (2,3,4)

– WHERE NOT IN (6,7)

CONCATENAR

– ‘suite’||’case’ ‘suitecase’

Page 64: Intro sql y plsql

1-64

Introducción a SQL y PL/SQL

Expresiones y Comparaciones

SELECT DECODE (codigo,NULL,0,10,’A’,20,’B’) VALOR

FROM EMPLEADOS;

DECODE

Page 65: Intro sql y plsql

1-65

Introducción a SQL y PL/SQL

Expresiones y ComparacionesCASE

select sysdate fecha, to_number(TO_CHAR(sysdate, 'SS')) Minuto, 'Segundos ' || CASE

WHEN (to_number(TO_CHAR(sysdate, 'SS')) IS NULL) THEN 'Nulos'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 0) THEN 'Cero'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 1) THEN 'Uno'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 2) THEN 'Dos'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 3) THEN 'Tres'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 4) THEN 'Cuatro'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 5) THEN 'Cinco'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 6) THEN 'Seis'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 7) THEN 'Siete'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 8) THEN 'Ocho'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 9) THEN 'Nueve'WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 10) THEN 'Diez'WHEN (to_number(TO_CHAR(sysdate, 'SS')) > 10 AND

to_number(TO_CHAR(sysdate, 'SS')) < 31) THEN 'entre 11 y 30'WHEN (to_number(TO_CHAR(sysdate, 'SS')) in

(31,32,33,34,35,36,37,38,39)) THEN 'in (31,32,33,34,35,36,37,38,39)'

ELSE 'entre 40 y 59' END as Opcionfrom dual

Page 66: Intro sql y plsql

1-66

Introducción a SQL y PL/SQL

Funciones del Lenguaje (Tabla DUAL)

Page 67: Intro sql y plsql

1-67

Introducción a SQL y PL/SQL

Resumen

Fundamentos básicos de PL/SQL

Declaracion de Variables

Convenciones

Asignación de Valores a Variables

Expresiones y Comparaciones

Funciones del Lenguaje

Page 68: Intro sql y plsql

1-68

Introducción a SQL y PL/SQL

Estructuras de Control

7

Page 69: Intro sql y plsql

1-69

Introducción a SQL y PL/SQL

Overview

Condicionales

– IF-THEN

– IF-THEN-ELSE

– IF-THEN-ELSIF

Iteraciones

– LOOP

– WHILE

– FOR

Page 70: Intro sql y plsql

1-70

Introducción a SQL y PL/SQL

Condicionales

IF – THEN

IF condicion THEN

secuencia de instrucciones

END IF;

Ejemplo:

IF codigo = 5 THEN

nuValor := 50000;

END IF;

Page 71: Intro sql y plsql

1-71

Introducción a SQL y PL/SQL

Condicionales

IF – THEN – ELSE

IF condicion THEN

secuencia de instrucciones 1;

ELSE

secuencia de instrucciones 2;

END IF;

Ejemplo

IF codigo = 5 THEN

nuValor := 50000;

ELSE

nuValor := 10;

END IF;

Page 72: Intro sql y plsql

1-72

Introducción a SQL y PL/SQL

Condicionales

IF – THEN – ELSIF

IF condicion1 THEN

secuencia de instrucciones 1;

ELSIF condicion2 THEN

secuencia de instrucciones 2;

ELSE

secuencia de instrucciones 3;

END IF;

Page 73: Intro sql y plsql

1-73

Introducción a SQL y PL/SQL

Iteraciones

LOOP

LOOP

secuencia de instrucciones;

END LOOP;

EXIT – EXIT WHEN

LOOP LOOP

IF condicion THEN ...

... EXIT WHEN a<5;

EXIT; END LOOP;

END IF;

END LOOP;

Page 74: Intro sql y plsql

1-74

Introducción a SQL y PL/SQL

Iteraciones

WHILE – LOOP

WHILE condicion LOOP

secuencia de instrucciones

END LOOP;

Ejemplo

WHILE total <=25000 LOOP

total := total + 20;

...

END LOOP;

Page 75: Intro sql y plsql

1-75

Introducción a SQL y PL/SQL

Iteraciones

FOR – LOOP

FOR contador IN [REVERSE] desde..hasta LOOP

secuencia de instrucciones;

END LOOP;

Ejemplo:

FOR i IN 1..10 LOOP

...

total := total + (i*10);

END LOOP;

Page 76: Intro sql y plsql

1-76

Introducción a SQL y PL/SQL

Resumen

Estructuras de Control

Condicionales

– IF – THEN

– IF – THEN – ELSE

– IF – THEN – ELSIF

Iteraciones

– LOOP

– WHILE

– FOR

Page 77: Intro sql y plsql

1-77

Introducción a SQL y PL/SQL

PL/SQL y su Interacción con Oracle

8

Page 78: Intro sql y plsql

1-78

Introducción a SQL y PL/SQL

Overview

Caracteristicas de PL/SQL

Manejo de Cursores– Implicit– Explicit

Paso de Parametros a los cursores

Variables tipo cursor

Atributos de los cursores– %FOUND– %NOTFOUND– %ISOPEN– %ROWCOUNT

Page 79: Intro sql y plsql

1-79

Introducción a SQL y PL/SQL

Caracteristicas de PL/SQL

Soporte de SQL

Soporta Programación Orientada a Objetos

Mejor Perfomance

Portable

Integrado con SQL

Manejo de Seguridad

Page 80: Intro sql y plsql

1-80

Introducción a SQL y PL/SQL

Manejo de Cursores

Explicit Cursor

– Comandos: OPEN, FETCH, CLOSE.

Declaración

DECLARE

CURSOR <Nombre> [(parametro1,parametro2...)] IS

instrucción SELECT...

Page 81: Intro sql y plsql

1-81

Introducción a SQL y PL/SQL

Manejo de Cursores

Declare

cursor cuEmpleados is

select codigo,nombre

from empleados

where salario > 1000;

nuCodigo Empleados.Codigo%type;

sbNombre Empleados.Nombre%type;

Begin

open cuEmpleados;

fetch cuEmpleados into nuCodigo,sbNombre;

...

close cuEmpleados;

End;

Page 82: Intro sql y plsql

1-82

Introducción a SQL y PL/SQL

Manejo de Cursores

Implicit Cursor

– No utilizan las instrucciones OPEN, FETCH y CLOSE.

– Utilizan Atributos de los Cursores para determinar el estado del cursor.

Ejemplo:

...

SELECT codigo

INTO nuValor

FROM Empleados;

Page 83: Intro sql y plsql

1-83

Introducción a SQL y PL/SQL

Manejo de Cursores

FOR CURSOR

declarecursor cuEmpleados isselect codigo,nombrefrom Empleadoswhere Salario > 1000;

beginFor rtEmp in cuEmpleados loop

...rtEmp.Codigo ...rtEmp.Nombre ...

end loop;end;

Page 84: Intro sql y plsql

1-84

Introducción a SQL y PL/SQL

Paso de Parametros a Cursores

DECLARE

CURSOR cuEmpleados (nuSalario number) is

SELECT codigo,nombre

FROM Empleados

WHERE Salario > nuSalario;

Page 85: Intro sql y plsql

1-85

Introducción a SQL y PL/SQL

Variables tipo cursor

DECLARE

CURSOR cuEmpleados is

SELECT *

FROM Empleados;

rtEmp cuEmpleados%rowtype;

BEGIN

OPEN cuEmpleados

FETCH cuEmpleados into rtEmp;

..

CLOSE cuEmpleados;

Page 86: Intro sql y plsql

1-86

Introducción a SQL y PL/SQL

Atributos de los Cursores

%FOUND: Es verdadero si se encontraron registros

del cursor.

%NOTFOUND: Es verdadero si NO se encontraron

registros del cursor.

%ISOPEN: Es verdadero si el cursor está abierto.

%ROWCOUNT: Devuleve la cantidad de registros que

retorna el cursor.

Page 87: Intro sql y plsql

1-87

Introducción a SQL y PL/SQL

Resumen

Uso de SQL y PL/SQL

Uso de los Cursores

– Implicit

– Explicit

FOR CURSOR

Parametros de los cursores

Atributos de los cursores

Page 88: Intro sql y plsql

1-88

Introducción a SQL y PL/SQL

Manejo de Errores

9

Page 89: Intro sql y plsql

1-89

Introducción a SQL y PL/SQL

Overview

Instrucción Exception

User-Defined Exception

Mensajes de Error

Page 90: Intro sql y plsql

1-90

Introducción a SQL y PL/SQL

Instrucción Exception

En Oracle las Advertencias o Mensajes de Error son llamados Excepciones (Exception).

Permite capturar los errores del

sistema y mantener un control

sobre las aplicaciones.

Pueden ser predefinidas o

creadas por el programador

Page 91: Intro sql y plsql

1-91

Introducción a SQL y PL/SQL

Instrucción Exception

Page 92: Intro sql y plsql

1-92

Introducción a SQL y PL/SQL

User Define Exception

Declaración

DECLARE null_salary EXCEPTION;

Inicializa la variable de Error

PRAGMA EXCEPTION_INIT (null_salary,-60);

DECLARE

null_salary EXCEPTION;

PRAGMA EXCEPTION_INIT (null_salary,-60);

BEGIN

... RAISE null_salary;

EXCEPTION

WHEN null_salary THEN

-- Manejo del Error

Page 93: Intro sql y plsql

1-93

Introducción a SQL y PL/SQL

Mensajes de Error

Utilizacion de Tablas de Mensaje

Funcion que retorne Mensaje Ej: fsbMensaje();

Mensajes Oracle SQLERRM

Mensajes ORA-XX

Page 94: Intro sql y plsql

1-94

Introducción a SQL y PL/SQL

Resumen

Manejo de errores Exception

Usos de las Excepciones

Mensajes de Error

Page 95: Intro sql y plsql

1-95

Introducción a SQL y PL/SQL

Creación de SubProgramas y Paquetes

10

Page 96: Intro sql y plsql

1-96

Introducción a SQL y PL/SQL

Overview

SubProgramas

– Funciones

– Procedimientos

Paquetes

Page 97: Intro sql y plsql

1-97

Introducción a SQL y PL/SQL

SubProgramas

CREATE OR REPLACE

FUNCTION nombre (parametro1,parametro2)

return <tipo de dato> IS|AS

declaraciones locales;

BEGIN

-- Instrucciones

EXCEPTION

-- Manejo de Errores

END;

Funciones

Page 98: Intro sql y plsql

1-98

Introducción a SQL y PL/SQL

SubProgramas

CREATE OR REPLACE

FUNCTION balance (cuenta number) RETURN number IS

declaraciones locales;

BEGIN

-- Instrucciones

return nuValor;

EXCEPTION

-- Manejo de Errores

END;

Funciones (Uso de RETURN)

Page 99: Intro sql y plsql

1-99

Introducción a SQL y PL/SQL

SubProgramas

CREATE OR REPLACE

PROCEDURE inserta_tabla IS

declaraciones locales;

BEGIN

-- Instrucciones

EXCEPTION

-- Manejo de Errores

END;

Procedimientos: Ejecuta Acción especifica

Page 100: Intro sql y plsql

1-100

Introducción a SQL y PL/SQL

Paquetes

Especificación

Page 101: Intro sql y plsql

1-101

Introducción a SQL y PL/SQL

Paquetes

Package Body

Page 102: Intro sql y plsql

1-102

Introducción a SQL y PL/SQL

Resumen

Objetos de Bases de Datos

– Funciones

– Procedimientos

– Paquetes

Page 103: Intro sql y plsql

1-103

Introducción a SQL y PL/SQL

PR&