Introducción a SQL y PL/SQL
1-1
Introducción a SQL y PL/SQL
Orlando Lara Betancourt

Introducción a SQL y PL/SQL
1-2
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
Introducción a SQL y PL/SQL
1-3
Introducción a Bases de Datos

Introducción a SQL y PL/SQL
1-4
Overview






Conceptos Basicos
Modelo Entidad Relación (MER)
Modelo Relacional de Datos (MRD)
Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle

Introducción a SQL y PL/SQL
1-5
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

Introducción a SQL y PL/SQL
1-6
Modelo Entidad Relación (MER)


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



Atributo: Caracteristica de la entidad
–



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



Dominio: Conjunto de valores de un atributo
Cardinalidad: Numero de correspondencias.

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

Introducción a SQL y PL/SQL
1-7
Modelo Entidad Relación (MER)

Cliente
# Cedula
Nombre
Direccion
Telefono
Sexo (M/F)

1:n
Tiene

1:1
Pertenece

Introducción a SQL y PL/SQL
1-8

Factura
# No Fact
Fecha
Valor
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

Introducción a SQL y PL/SQL
1-9
Modelo Relacional de Datos (MRD)

Clientes
# Cedula n(10) NN
Nombre v(50) NN
Direccion v(80)
Telefono v(20)
Sexo (M/F) v(1)

1:n
Tiene

1:1
Pertenece

Introducción a SQL y PL/SQL
1-10

Facturas
# No Fact n(4) NN
Fecha date
Valor n(9,2)
Cedula n(10) NN
Bases de Datos Oracle

Consulta
de Datos
Manipulación
de Datos

Almacenamiento
de Datos

Introducción a SQL y PL/SQL
1-11
Bases de Datos Oracle



RDBMS (Relational Database Management System)



Garantizar el maximo aprovechamiento de los
recursos.



Esta formado por dos Elementos:

Administración de recursos (Hardware) del
Sistema.

–

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)
Introducción a SQL y PL/SQL

1-12
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-13
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-14
Aquitectura de la Base de Datos Oracle
Mandatory Background Processes
DBWn
LGWR
SMON
PMON
CKPT

Introducción a SQL y PL/SQL
1-15
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-16
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

Introducción a SQL y PL/SQL
1-17
Creación y Manejo de Objetos de
Bases de Datos

Introducción a SQL y PL/SQL
1-18
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
Introducción a SQL y PL/SQL

1-19
Principales Objetos de la Base de Datos









Tablas
Vistas
Secuencias
Indices
Sinonimos
Procedimientos
Funciones
Paquetes

Introducción a SQL y PL/SQL
1-20
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

Introducción a SQL y PL/SQL
1-21

Depto
Tipos de Datos


Tipo Carácter



Tipo Numerico

–
–
–
–
–
–



NUMBER (L,P)

Tipo Fecha
–



CHAR
LONG
NCHAR
NVARCHAR2
VARCHAR2

DATE

LOB
Introducción a SQL y PL/SQL

1-22
Alterando Tablas
Alter table Empleados Add
(Comision number(9,2));

Codigo

Nombre

Salario

Introducción a SQL y PL/SQL
1-23

Depto

Comision
Instrucciones Drop y Truncate
Drop table Empleados;
Elimina la definición de la tabla.
Truncate table Empleados;
Elimina los datos de la tabla

Introducción a SQL y PL/SQL
1-24
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));

Introducción a SQL y PL/SQL
1-25
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;

Introducción a SQL y PL/SQL
1-26
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

30

Juan Manuel Rivas

20000 Ventas

40

Jose Juaquin Velez

50000 Recursos Humanos

50

Mario Hernandez

5000 Planeación

1000 Ventas

Introducción a SQL y PL/SQL
1-27
Creación y Uso de las Secuencias
CREATE SEQUENCE SEQEMPLEADOS
START WITH 1
INCREMENT BY 1
MAXVALUE 1E27
MINVALUE 1;

Introducción a SQL y PL/SQL
1-28
Creación y Uso de Indices

CREATE UNIQUE INDEX IDX_CODEMP ON
EMPLEADOS (CODIGO);

CREATE INDEX IDX_NOMEMP ON
EMPLEADOS (NOMBRE);

Introducción a SQL y PL/SQL
1-29
Creacion de Sinonimos
CREATE SYNONYM PEGASO.OBSEMULT FOR
GAS.OBSEMULT@DESA;
CREATE PUBLIC SYNONYM PEGASO.OBSEMULT
FOR GAS.OBSEMULT@DESA;
CREATE PUBLIC DATABASE LINK DESA
CONNECT TO DESA
IDENTIFIED BY ud953_f1
USING 'DESA';
Introducción a SQL y PL/SQL
1-30
Resumen








Objetos de Bases de Datos
Tablas
Constraints
Vistas
Secuencias
Indices
Sinonimos

Introducción a SQL y PL/SQL
1-31
Sentencias Basicas de SQL

Introducción a SQL y PL/SQL
1-32
Overview




Instrucción Select



Instrucción Order by

Limitando la cantidad de registros (Where)
Desplegar datos de multiples tablas (Uso de
Joins)

Introducción a SQL y PL/SQL
1-33
Instrucción Select
Select *
From Empleados;
Codigo

Nombre

Empleados
#Codigo
Nombre
Salario
Salario

10

Andres Escobar R

10000

20

Carlos Velasquez

5000

30

Juan Manuel Rivas

20000

40

Jose Juaquin Velez

50000

50

Mario Hernandez

1000

Introducción a SQL y PL/SQL
1-34
Limitando la Cantidad de Registros
Select *
From Empleados
Where Salario > 10000;
Codigo

Nombre

Salario

30

Juan Manuel Rivas

20000

40

Jose Juaquin Velez

50000

La clausula Where determina la condición de la consulta
Introducción a SQL y PL/SQL
1-35
Desplegar Datos de Multiples Tablas
Deptos
#Codigo
Nombre

Codigo

1:n
Tiene

1:1
Pertenece

Empleados
#Codigo
Nombre
Salario
Depto

Nombre

10

Recursos Humanos

20

Ventas

30

Planeación

Introducción a SQL y PL/SQL
1-36
Desplegar Datos de Multiples Tablas
Select Empleados.Codigo,
Empleados.Nombre,
Empleados.salario,
Deptos.Nombre Depto

Alias

From

Empleados,Deptos

Where

Empleados.Depto = Deptos.Codigo;

Codigo

Nombre

Salario

Depto

10

Andres Escobar R

10000 Ventas

20

Carlos Velasquez

30

Juan Manuel Rivas

20000 Ventas

40

Jose Juaquin Velez

50000 Recursos Humanos

50

Mario Hernandez

5000 Planeación

1000 Ventas

Introducción a SQL y PL/SQL
1-37
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

Introducción a SQL y PL/SQL
1-38
Resumen


Instrucciones básicas de SQL para consultar
datos.
–

Select

–

Where

–

Alias

–

Joins

–

Order by

Introducción a SQL y PL/SQL
1-39
Manipulación de Datos con SQL

Introducción a SQL y PL/SQL
1-40
Overview





Insertando Datos (Insert)
Actualizando Datos (Update)
Eliminando Información (Delete)
Control de Transacciones (Commit - Rollback)

Introducción a SQL y PL/SQL
1-41
Insertando Datos (insert)
Insert into Empleados
Values (60,’Jota Mario Valencia’,
3000,10);
Empleados
Codigo

 60

Nombre
Jota Mario Valencia

Salario
3000

Introducción a SQL y PL/SQL
1-42

Depto
10
Insertando Datos (insert)
Insert into Empleados
(Codigo,Nombre,Salario,Depto)
Values (60,’Jota Mario Valencia’,
3000,10);
Empleados
Codigo

 60

Nombre
Jota Mario Valencia

Salario
3000

Introducción a SQL y PL/SQL
1-43

Depto
10
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

Introducción a SQL y PL/SQL
1-44
Eliminado Datos (delete)
Delete Empleados
Where Codigo = 10;
Codigo

Nombre

20

Carlos Velasquez

30

Salario

Depto

5000

10

Juan Manuel Rivas

20000

10

40

Jose Juaquin Velez

50000

10

50

Mario Hernandez

1000

10

Introducción a SQL y PL/SQL
1-45
Control de Transacciones


Commit
–



Rollback
–



Commit;
Rollback;

Save Point
–

Save Point <Nombre>

Introducción a SQL y PL/SQL
1-46
Resumen


Instrucciones SQL para manipular datos.

– Insert
– Update
– Delete
– Commit
– Rollback

Introducción a SQL y PL/SQL
1-47
Control de Acceso

Introducción a SQL y PL/SQL
1-48
Overview


Conceptos:
–
–

Privilegios

–



Usuarios
Roles

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

Introducción a SQL y PL/SQL
1-49
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

Introducción a SQL y PL/SQL
1-50
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;

Introducción a SQL y PL/SQL
1-51
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;
Introducción a SQL y PL/SQL

1-52
Ejemplo de Uso de Seguridad

Introducción a SQL y PL/SQL
1-53
Resumen





Usuarios
Roles
Privilegios
Manejo de Seguridad de Datos en Oracle

Introducción a SQL y PL/SQL
1-54
6
Fundamentos de PL/SQL

Introducción a SQL y PL/SQL
1-55
Overview


Declaración de Variables
–
–

NOT NULL

–

%TYPE

–






DEFAULT

%ROWTYPE

Convenciones de Nombres de variables
Asignación de Valores a las variables
Expresiones y Comparaciones
Funciones del Lenguaje

Introducción a SQL y PL/SQL
1-56
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’;
Introducción a SQL y PL/SQL
1-57
Convenciones de Nombres de Variables








sb  Cadena
nu  Numerico
dt  Fecha
bl  Booleano
rt  Registro
cu  Cursores
cn  Constante

Introducción a SQL y PL/SQL
1-58
Asignación de Valores a las variables
nuValor Empleados.Codigo%type;
...
nuValor := 25
select Codigo
into nuValor
from Empleados
where Codigo = 25;
Introducción a SQL y PL/SQL
1-59
Expresiones y Comparaciones


Precedencia de Operación

Introducción a SQL y PL/SQL
1-60
Expresiones y Comparaciones


Operaadores Logicos

Introducción a SQL y PL/SQL
1-61
Expresiones y Comparaciones


Operadores de Comparación

Introducción a SQL y PL/SQL
1-62
Expresiones y Comparaciones


IS NULL
–



BETWEEN
–



IF Variable IS NULL THEN ...
45 BETWEEN 38 AND 44

IN y NOT IN
–
–



WHERE CODIGO IN (2,3,4)
WHERE NOT IN (6,7)

CONCATENAR
–

‘suite’||’case’  ‘suitecase’

Introducción a SQL y PL/SQL
1-63
Expresiones y Comparaciones
DECODE
SELECT DECODE
(codigo,NULL,0,10,’A’,20,’B’) VALOR
FROM EMPLEADOS;

Introducción a SQL y PL/SQL
1-64
Expresiones y Comparaciones
CASE
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 Opcion
from dual

Introducción a SQL y PL/SQL
1-65
Funciones del Lenguaje (Tabla DUAL)

Introducción a SQL y PL/SQL
1-66
Resumen







Fundamentos básicos de PL/SQL
Declaracion de Variables
Convenciones
Asignación de Valores a Variables
Expresiones y Comparaciones
Funciones del Lenguaje

Introducción a SQL y PL/SQL
1-67
7
Estructuras de Control

Introducción a SQL y PL/SQL
1-68
Overview


Condicionales
–
–

IF-THEN-ELSE

–



IF-THEN
IF-THEN-ELSIF

Iteraciones
–

LOOP

–

WHILE

–

FOR

Introducción a SQL y PL/SQL
1-69
Condicionales


IF – THEN
IF condicion THEN
secuencia de instrucciones
END IF;

Ejemplo:
IF codigo = 5 THEN
nuValor := 50000;
END IF;

Introducción a SQL y PL/SQL
1-70
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;
Introducción a SQL y PL/SQL
1-71
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;

Introducción a SQL y PL/SQL
1-72
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;
Introducción a SQL y PL/SQL
1-73
Iteraciones


WHILE – LOOP
WHILE condicion LOOP
secuencia de instrucciones
END LOOP;

Ejemplo
WHILE total <=25000 LOOP
total := total + 20;
...
END LOOP;
Introducción a SQL y PL/SQL
1-74
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;
Introducción a SQL y PL/SQL
1-75
Resumen



Estructuras de Control
Condicionales
–
–

IF – THEN – ELSE

–



IF – THEN
IF – THEN – ELSIF

Iteraciones
–

LOOP

–

WHILE

–

FOR

Introducción a SQL y PL/SQL
1-76
8
PL/SQL y su Interacción con Oracle

Introducción a SQL y PL/SQL
1-77
Overview



Caracteristicas de PL/SQL





Paso de Parametros a los cursores

Manejo de Cursores
–
–

Implicit
Explicit

Variables tipo cursor
Atributos de los cursores
–
–
–
–

%FOUND
%NOTFOUND
%ISOPEN
%ROWCOUNT

Introducción a SQL y PL/SQL
1-78
Caracteristicas de PL/SQL







Soporte de SQL
Soporta Programación Orientada a Objetos
Mejor Perfomance
Portable
Integrado con SQL
Manejo de Seguridad

Introducción a SQL y PL/SQL
1-79
Manejo de Cursores


Explicit Cursor
–



Comandos: OPEN, FETCH, CLOSE.

Declaración

DECLARE
CURSOR <Nombre>
[(parametro1,parametro2...)] IS
instrucción SELECT...

Introducción a SQL y PL/SQL
1-80
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;
Introducción a SQL y PL/SQL
1-81
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;

Introducción a SQL y PL/SQL
1-82
Manejo de Cursores


FOR CURSOR
declare
cursor cuEmpleados is
select codigo,nombre
from
Empleados
where Salario > 1000;
begin
For rtEmp in cuEmpleados loop
...
rtEmp.Codigo ...
rtEmp.Nombre ...
end loop;
end;
Introducción a SQL y PL/SQL

1-83
Paso de Parametros a Cursores
DECLARE
CURSOR cuEmpleados (nuSalario number) is
SELECT codigo,nombre
FROM

Empleados

WHERE

Salario > nuSalario;

Introducción a SQL y PL/SQL
1-84
Variables tipo cursor
DECLARE
CURSOR cuEmpleados is
SELECT *
FROM

Empleados;

rtEmp cuEmpleados%rowtype;
BEGIN
OPEN cuEmpleados
FETCH cuEmpleados into rtEmp;
..
CLOSE cuEmpleados;
Introducción a SQL y PL/SQL
1-85
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.

Introducción a SQL y PL/SQL
1-86
Resumen



Uso de SQL y PL/SQL
Uso de los Cursores
–
–





Implicit
Explicit

FOR CURSOR
Parametros de los cursores
Atributos de los cursores

Introducción a SQL y PL/SQL
1-87
9
Manejo de Errores

Introducción a SQL y PL/SQL
1-88
Overview




Instrucción Exception
User-Defined Exception
Mensajes de Error

Introducción a SQL y PL/SQL
1-89
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



Introducción a SQL y PL/SQL
1-90
Instrucción Exception

Introducción a SQL y PL/SQL
1-91
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
Introducción a SQL y PL/SQL
1-92
Mensajes de Error





Utilizacion de Tablas de Mensaje
Funcion que retorne Mensaje Ej: fsbMensaje();
Mensajes Oracle SQLERRM
Mensajes ORA-XX

Introducción a SQL y PL/SQL
1-93
Resumen




Manejo de errores Exception
Usos de las Excepciones
Mensajes de Error

Introducción a SQL y PL/SQL
1-94
10
Creación de SubProgramas y
Paquetes

Introducción a SQL y PL/SQL
1-95
Overview


SubProgramas
–
–



Funciones
Procedimientos

Paquetes

Introducción a SQL y PL/SQL
1-96
SubProgramas


Funciones
CREATE OR REPLACE
FUNCTION nombre (parametro1,parametro2)
return <tipo de dato> IS|AS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;
Introducción a SQL y PL/SQL

1-97
SubProgramas


Funciones (Uso de RETURN)
CREATE OR REPLACE
FUNCTION balance (cuenta number) RETURN number
IS
declaraciones locales;
BEGIN
-- Instrucciones
return nuValor;
EXCEPTION
-- Manejo de Errores
END;
Introducción a SQL y PL/SQL

1-98
SubProgramas


Procedimientos: Ejecuta Acción especifica

CREATE OR REPLACE
PROCEDURE inserta_tabla IS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;

Introducción a SQL y PL/SQL
1-99
Paquetes


Especificación

Introducción a SQL y PL/SQL
1-100
Paquetes


Package Body

Introducción a SQL y PL/SQL
1-101
Resumen


Objetos de Bases de Datos
–

Funciones

–

Procedimientos

–

Paquetes

Introducción a SQL y PL/SQL
1-102
P&
R
Introducción a SQL y PL/SQL
1-103

Intro sql y plsql

  • 1.
    Introducción a SQLy PL/SQL 1-1
  • 2.
    Introducción a SQLy PL/SQL Orlando Lara Betancourt Introducción a SQL y PL/SQL 1-2
  • 3.
    Contenido 1. Introducción aBases 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 Introducción a SQL y PL/SQL 1-3
  • 4.
    Introducción a Basesde Datos Introducción a SQL y PL/SQL 1-4
  • 5.
    Overview      Conceptos Basicos Modelo EntidadRelación (MER) Modelo Relacional de Datos (MRD) Bases de Datos Oracle Arquitectura de Bases de Datos Oracle Introducción a SQL y PL/SQL 1-5
  • 6.
    Conceptos Basicos  Base deDatos: 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 Introducción a SQL y PL/SQL 1-6
  • 7.
    Modelo Entidad Relación(MER)  Entidad: Objeto sobre el cual se puede tener información.  Atributo: Caracteristica de la entidad –  Relación: Asociación entre dos o mas Entidades –  Dominio: Conjunto de valores de un atributo Cardinalidad: Numero de correspondencias. Identificador: Atributo que identifica una única ocurrencia de la Entidad. Introducción a SQL y PL/SQL 1-7
  • 8.
    Modelo Entidad Relación(MER) Cliente # Cedula Nombre Direccion Telefono Sexo (M/F) 1:n Tiene 1:1 Pertenece Introducción a SQL y PL/SQL 1-8 Factura # No Fact Fecha Valor
  • 9.
    Modelo Relacional deDatos (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 Introducción a SQL y PL/SQL 1-9
  • 10.
    Modelo Relacional deDatos (MRD) Clientes # Cedula n(10) NN Nombre v(50) NN Direccion v(80) Telefono v(20) Sexo (M/F) v(1) 1:n Tiene 1:1 Pertenece Introducción a SQL y PL/SQL 1-10 Facturas # No Fact n(4) NN Fecha date Valor n(9,2) Cedula n(10) NN
  • 11.
    Bases de DatosOracle Consulta de Datos Manipulación de Datos Almacenamiento de Datos Introducción a SQL y PL/SQL 1-11
  • 12.
    Bases de DatosOracle   RDBMS (Relational Database Management System)  Garantizar el maximo aprovechamiento de los recursos.  Esta formado por dos Elementos: Administración de recursos (Hardware) del Sistema. – 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) Introducción a SQL y PL/SQL 1-12
  • 13.
    Aquitectura de laBase de Datos Oracle Introducción a SQL y PL/SQL 1-13
  • 14.
    Aquitectura de laBase de Datos Oracle Introducción a SQL y PL/SQL 1-14
  • 15.
    Aquitectura de laBase de Datos Oracle Mandatory Background Processes DBWn LGWR SMON PMON CKPT Introducción a SQL y PL/SQL 1-15
  • 16.
    Aquitectura de laBase de Datos Oracle Introducción a SQL y PL/SQL 1-16
  • 17.
    Resumen      Conceptos de Basesde Datos Modelo Entidad Relación Modelo Relacional de Datos Caracteristicas de un RDBMS Arquitectura de la Base de Datos Oracle Introducción a SQL y PL/SQL 1-17
  • 18.
    Creación y Manejode Objetos de Bases de Datos Introducción a SQL y PL/SQL 1-18
  • 19.
    Overview            Principales Objetos dela 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 Introducción a SQL y PL/SQL 1-19
  • 20.
    Principales Objetos dela Base de Datos         Tablas Vistas Secuencias Indices Sinonimos Procedimientos Funciones Paquetes Introducción a SQL y PL/SQL 1-20
  • 21.
    Creacion de Tablas Createtable 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 Introducción a SQL y PL/SQL 1-21 Depto
  • 22.
    Tipos de Datos  TipoCarácter  Tipo Numerico – – – – – –  NUMBER (L,P) Tipo Fecha –  CHAR LONG NCHAR NVARCHAR2 VARCHAR2 DATE LOB Introducción a SQL y PL/SQL 1-22
  • 23.
    Alterando Tablas Alter tableEmpleados Add (Comision number(9,2)); Codigo Nombre Salario Introducción a SQL y PL/SQL 1-23 Depto Comision
  • 24.
    Instrucciones Drop yTruncate Drop table Empleados; Elimina la definición de la tabla. Truncate table Empleados; Elimina los datos de la tabla Introducción a SQL y PL/SQL 1-24
  • 25.
    Creación de constraints ALTERTABLE EMPLEADOS ADD ( CONSTRAINT PK_EMPLEADOS PRIMARY KEY (CODIGO)); ALTER TABLE EMPLEADOS ADD ( CONSTRAINT FK_EMPL_DPTO FOREIGN KEY (DEPTO) REFERENCES DEPTOS (CODIGO)); Introducción a SQL y PL/SQL 1-25
  • 26.
    Creación de Vistas CREATEOR 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; Introducción a SQL y PL/SQL 1-26
  • 27.
    Consultando Datos deuna Vista Select CodEmp,NomEmp, SalEmp,Depto From EMP_DEPTO; CodEmp NomEmp SalEmp Depto 10 Andres Escobar R 10000 Ventas 20 Carlos Velasquez 30 Juan Manuel Rivas 20000 Ventas 40 Jose Juaquin Velez 50000 Recursos Humanos 50 Mario Hernandez 5000 Planeación 1000 Ventas Introducción a SQL y PL/SQL 1-27
  • 28.
    Creación y Usode las Secuencias CREATE SEQUENCE SEQEMPLEADOS START WITH 1 INCREMENT BY 1 MAXVALUE 1E27 MINVALUE 1; Introducción a SQL y PL/SQL 1-28
  • 29.
    Creación y Usode Indices CREATE UNIQUE INDEX IDX_CODEMP ON EMPLEADOS (CODIGO); CREATE INDEX IDX_NOMEMP ON EMPLEADOS (NOMBRE); Introducción a SQL y PL/SQL 1-29
  • 30.
    Creacion de Sinonimos CREATESYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA; CREATE PUBLIC SYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA; CREATE PUBLIC DATABASE LINK DESA CONNECT TO DESA IDENTIFIED BY ud953_f1 USING 'DESA'; Introducción a SQL y PL/SQL 1-30
  • 31.
    Resumen        Objetos de Basesde Datos Tablas Constraints Vistas Secuencias Indices Sinonimos Introducción a SQL y PL/SQL 1-31
  • 32.
    Sentencias Basicas deSQL Introducción a SQL y PL/SQL 1-32
  • 33.
    Overview    Instrucción Select  Instrucción Orderby Limitando la cantidad de registros (Where) Desplegar datos de multiples tablas (Uso de Joins) Introducción a SQL y PL/SQL 1-33
  • 34.
    Instrucción Select Select * FromEmpleados; Codigo Nombre Empleados #Codigo Nombre Salario Salario 10 Andres Escobar R 10000 20 Carlos Velasquez 5000 30 Juan Manuel Rivas 20000 40 Jose Juaquin Velez 50000 50 Mario Hernandez 1000 Introducción a SQL y PL/SQL 1-34
  • 35.
    Limitando la Cantidadde Registros Select * From Empleados Where Salario > 10000; Codigo Nombre Salario 30 Juan Manuel Rivas 20000 40 Jose Juaquin Velez 50000 La clausula Where determina la condición de la consulta Introducción a SQL y PL/SQL 1-35
  • 36.
    Desplegar Datos deMultiples Tablas Deptos #Codigo Nombre Codigo 1:n Tiene 1:1 Pertenece Empleados #Codigo Nombre Salario Depto Nombre 10 Recursos Humanos 20 Ventas 30 Planeación Introducción a SQL y PL/SQL 1-36
  • 37.
    Desplegar Datos deMultiples Tablas Select Empleados.Codigo, Empleados.Nombre, Empleados.salario, Deptos.Nombre Depto Alias From Empleados,Deptos Where Empleados.Depto = Deptos.Codigo; Codigo Nombre Salario Depto 10 Andres Escobar R 10000 Ventas 20 Carlos Velasquez 30 Juan Manuel Rivas 20000 Ventas 40 Jose Juaquin Velez 50000 Recursos Humanos 50 Mario Hernandez 5000 Planeación 1000 Ventas Introducción a SQL y PL/SQL 1-37
  • 38.
    Instrucción Order By SelectEmpleados.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 Introducción a SQL y PL/SQL 1-38
  • 39.
    Resumen  Instrucciones básicas deSQL para consultar datos. – Select – Where – Alias – Joins – Order by Introducción a SQL y PL/SQL 1-39
  • 40.
    Manipulación de Datoscon SQL Introducción a SQL y PL/SQL 1-40
  • 41.
    Overview     Insertando Datos (Insert) ActualizandoDatos (Update) Eliminando Información (Delete) Control de Transacciones (Commit - Rollback) Introducción a SQL y PL/SQL 1-41
  • 42.
    Insertando Datos (insert) Insertinto Empleados Values (60,’Jota Mario Valencia’, 3000,10); Empleados Codigo  60 Nombre Jota Mario Valencia Salario 3000 Introducción a SQL y PL/SQL 1-42 Depto 10
  • 43.
    Insertando Datos (insert) Insertinto Empleados (Codigo,Nombre,Salario,Depto) Values (60,’Jota Mario Valencia’, 3000,10); Empleados Codigo  60 Nombre Jota Mario Valencia Salario 3000 Introducción a SQL y PL/SQL 1-43 Depto 10
  • 44.
    Actualizando Datos (update) UpdateEmpleados 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 Introducción a SQL y PL/SQL 1-44
  • 45.
    Eliminado Datos (delete) DeleteEmpleados Where Codigo = 10; Codigo Nombre 20 Carlos Velasquez 30 Salario Depto 5000 10 Juan Manuel Rivas 20000 10 40 Jose Juaquin Velez 50000 10 50 Mario Hernandez 1000 10 Introducción a SQL y PL/SQL 1-45
  • 46.
    Control de Transacciones  Commit –  Rollback –  Commit; Rollback; SavePoint – Save Point <Nombre> Introducción a SQL y PL/SQL 1-46
  • 47.
    Resumen  Instrucciones SQL paramanipular datos. – Insert – Update – Delete – Commit – Rollback Introducción a SQL y PL/SQL 1-47
  • 48.
  • 49.
    Overview  Conceptos: – – Privilegios –  Usuarios Roles Otorgar (Grant) yRevocar (Revoke) Privilegios a los objetos de la Base de Datos Introducción a SQL y PL/SQL 1-49
  • 50.
    Conceptos  Usuarios: SYS ySYSTEM CREATE USER ORLANDOL IDENTIFIED BY VALUES 'ECE5A72B8C80CBE3’;  Privilegios - Tablas - Vistas - Secuencias - Procedimientos - Funciones - Paquetes  DML (Data Manipulation) DDL (Data Definition) Labor de DBA Introducción a SQL y PL/SQL 1-50
  • 51.
    Conceptos  Roles: Facilita laadministració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; Introducción a SQL y PL/SQL 1-51
  • 52.
    Otorgar (Grant) yRevocar (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; Introducción a SQL y PL/SQL 1-52
  • 53.
    Ejemplo de Usode Seguridad Introducción a SQL y PL/SQL 1-53
  • 54.
    Resumen     Usuarios Roles Privilegios Manejo de Seguridadde Datos en Oracle Introducción a SQL y PL/SQL 1-54
  • 55.
  • 56.
    Overview  Declaración de Variables – – NOTNULL – %TYPE –     DEFAULT %ROWTYPE Convenciones de Nombres de variables Asignación de Valores a las variables Expresiones y Comparaciones Funciones del Lenguaje Introducción a SQL y PL/SQL 1-56
  • 57.
    Declaración de Variables sbCadenavarchar2(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’; Introducción a SQL y PL/SQL 1-57
  • 58.
    Convenciones de Nombresde Variables        sb  Cadena nu  Numerico dt  Fecha bl  Booleano rt  Registro cu  Cursores cn  Constante Introducción a SQL y PL/SQL 1-58
  • 59.
    Asignación de Valoresa las variables nuValor Empleados.Codigo%type; ... nuValor := 25 select Codigo into nuValor from Empleados where Codigo = 25; Introducción a SQL y PL/SQL 1-59
  • 60.
    Expresiones y Comparaciones  Precedenciade Operación Introducción a SQL y PL/SQL 1-60
  • 61.
    Expresiones y Comparaciones  OperaadoresLogicos Introducción a SQL y PL/SQL 1-61
  • 62.
    Expresiones y Comparaciones  Operadoresde Comparación Introducción a SQL y PL/SQL 1-62
  • 63.
    Expresiones y Comparaciones  ISNULL –  BETWEEN –  IF Variable IS NULL THEN ... 45 BETWEEN 38 AND 44 IN y NOT IN – –  WHERE CODIGO IN (2,3,4) WHERE NOT IN (6,7) CONCATENAR – ‘suite’||’case’  ‘suitecase’ Introducción a SQL y PL/SQL 1-63
  • 64.
    Expresiones y Comparaciones DECODE SELECTDECODE (codigo,NULL,0,10,’A’,20,’B’) VALOR FROM EMPLEADOS; Introducción a SQL y PL/SQL 1-64
  • 65.
    Expresiones y Comparaciones CASE select sysdatefecha, 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 Opcion from dual Introducción a SQL y PL/SQL 1-65
  • 66.
    Funciones del Lenguaje(Tabla DUAL) Introducción a SQL y PL/SQL 1-66
  • 67.
    Resumen       Fundamentos básicos dePL/SQL Declaracion de Variables Convenciones Asignación de Valores a Variables Expresiones y Comparaciones Funciones del Lenguaje Introducción a SQL y PL/SQL 1-67
  • 68.
  • 69.
  • 70.
    Condicionales  IF – THEN IFcondicion THEN secuencia de instrucciones END IF; Ejemplo: IF codigo = 5 THEN nuValor := 50000; END IF; Introducción a SQL y PL/SQL 1-70
  • 71.
    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; Introducción a SQL y PL/SQL 1-71
  • 72.
    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; Introducción a SQL y PL/SQL 1-72
  • 73.
    Iteraciones  LOOP LOOP secuencia de instrucciones; ENDLOOP;  EXIT – EXIT WHEN LOOP LOOP IF condicion THEN ... ... EXIT WHEN a<5; EXIT; END LOOP; END IF; END LOOP; Introducción a SQL y PL/SQL 1-73
  • 74.
    Iteraciones  WHILE – LOOP WHILEcondicion LOOP secuencia de instrucciones END LOOP; Ejemplo WHILE total <=25000 LOOP total := total + 20; ... END LOOP; Introducción a SQL y PL/SQL 1-74
  • 75.
    Iteraciones  FOR – LOOP FORcontador IN [REVERSE] desde..hasta LOOP secuencia de instrucciones; END LOOP; Ejemplo: FOR i IN 1..10 LOOP ... total := total + (i*10); END LOOP; Introducción a SQL y PL/SQL 1-75
  • 76.
    Resumen   Estructuras de Control Condicionales – – IF– THEN – ELSE –  IF – THEN IF – THEN – ELSIF Iteraciones – LOOP – WHILE – FOR Introducción a SQL y PL/SQL 1-76
  • 77.
    8 PL/SQL y suInteracción con Oracle Introducción a SQL y PL/SQL 1-77
  • 78.
    Overview   Caracteristicas de PL/SQL    Pasode Parametros a los cursores Manejo de Cursores – – Implicit Explicit Variables tipo cursor Atributos de los cursores – – – – %FOUND %NOTFOUND %ISOPEN %ROWCOUNT Introducción a SQL y PL/SQL 1-78
  • 79.
    Caracteristicas de PL/SQL       Soportede SQL Soporta Programación Orientada a Objetos Mejor Perfomance Portable Integrado con SQL Manejo de Seguridad Introducción a SQL y PL/SQL 1-79
  • 80.
    Manejo de Cursores  ExplicitCursor –  Comandos: OPEN, FETCH, CLOSE. Declaración DECLARE CURSOR <Nombre> [(parametro1,parametro2...)] IS instrucción SELECT... Introducción a SQL y PL/SQL 1-80
  • 81.
    Manejo de Cursores Declare cursorcuEmpleados 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; Introducción a SQL y PL/SQL 1-81
  • 82.
    Manejo de Cursores  ImplicitCursor – 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; Introducción a SQL y PL/SQL 1-82
  • 83.
    Manejo de Cursores  FORCURSOR declare cursor cuEmpleados is select codigo,nombre from Empleados where Salario > 1000; begin For rtEmp in cuEmpleados loop ... rtEmp.Codigo ... rtEmp.Nombre ... end loop; end; Introducción a SQL y PL/SQL 1-83
  • 84.
    Paso de Parametrosa Cursores DECLARE CURSOR cuEmpleados (nuSalario number) is SELECT codigo,nombre FROM Empleados WHERE Salario > nuSalario; Introducción a SQL y PL/SQL 1-84
  • 85.
    Variables tipo cursor DECLARE CURSORcuEmpleados is SELECT * FROM Empleados; rtEmp cuEmpleados%rowtype; BEGIN OPEN cuEmpleados FETCH cuEmpleados into rtEmp; .. CLOSE cuEmpleados; Introducción a SQL y PL/SQL 1-85
  • 86.
    Atributos de losCursores  %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. Introducción a SQL y PL/SQL 1-86
  • 87.
    Resumen   Uso de SQLy PL/SQL Uso de los Cursores – –    Implicit Explicit FOR CURSOR Parametros de los cursores Atributos de los cursores Introducción a SQL y PL/SQL 1-87
  • 88.
  • 89.
  • 90.
    Instrucción Exception  En Oraclelas 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  Introducción a SQL y PL/SQL 1-90
  • 91.
  • 92.
    User Define Exception  Declaración DECLAREnull_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 Introducción a SQL y PL/SQL 1-92
  • 93.
    Mensajes de Error     Utilizacionde Tablas de Mensaje Funcion que retorne Mensaje Ej: fsbMensaje(); Mensajes Oracle SQLERRM Mensajes ORA-XX Introducción a SQL y PL/SQL 1-93
  • 94.
    Resumen    Manejo de erroresException Usos de las Excepciones Mensajes de Error Introducción a SQL y PL/SQL 1-94
  • 95.
    10 Creación de SubProgramasy Paquetes Introducción a SQL y PL/SQL 1-95
  • 96.
  • 97.
    SubProgramas  Funciones CREATE OR REPLACE FUNCTIONnombre (parametro1,parametro2) return <tipo de dato> IS|AS declaraciones locales; BEGIN -- Instrucciones EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-97
  • 98.
    SubProgramas  Funciones (Uso deRETURN) CREATE OR REPLACE FUNCTION balance (cuenta number) RETURN number IS declaraciones locales; BEGIN -- Instrucciones return nuValor; EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-98
  • 99.
    SubProgramas  Procedimientos: Ejecuta Acciónespecifica CREATE OR REPLACE PROCEDURE inserta_tabla IS declaraciones locales; BEGIN -- Instrucciones EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-99
  • 100.
  • 101.
  • 102.
    Resumen  Objetos de Basesde Datos – Funciones – Procedimientos – Paquetes Introducción a SQL y PL/SQL 1-102
  • 103.

Notas del editor

  • #3 Schedule:TimingTopic 60 minutesLecture 30 minutesPractice 90 minutesTotal