Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Conceptos Bsicos y definicin de PL/SQL ...................................................... 3
Que es PL/SQL .................................................................................................. 3
Caractersticas de PL/SQL ................................................................................. 4
Bloques PL/SQL ................................................................................................. 4
Tipos de Bloques................................................................................................ 5
Tipos de Datos Oracle/PL-SQL .......................................................................... 6
Identificadores .................................................................................................... 8
Operadores ........................................................................................................ 8
Clave primaria .................................................................................................... 9
Llavefornea..................................................................................................... 10
Unique .............................................................................................................. 11
ndices .............................................................................................................. 11
Secuencias ....................................................................................................... 12
Funciones y Procedimientos ............................................................................ 13
Procedimientos................................................................................................. 13
Funciones ......................................................................................................... 14
Cursores ........................................................................................................... 17
Vistas ............................................................................................................... 19
Paquetes .......................................................................................................... 21
Triggers ............................................................................................................ 22
Ejemplos varios en PL/SQL.............................................................................. 25
Resuelva los siguientes ejercicios: ................................................................... 31
Solucionario...................................................................................................... 33
Que es PL/SQL
Caractersticas de PL/SQL
Bloques PL-SQL
Tipos de Bloques
Tipos de Datos Oracle/PL-SQL
Identificadores
Operadores
Variables
Constantes
Bloques PL/SQL
Cada una de las partes anteriores se delimita por una palabra reservada, de modo
que un bloque PL/SQL se puede representar como sigue:
Tipos de Bloques
CHAR: Almacena datos de tipo carcter con una longitud mxima de 32767
y cuyo valor de longitud por default es.
Identificadores
Se emplean para dar nombre a los objetos PL/SQL, tales como variables,
cursores, tipos y subprogramas.
Los identificadores constan de una letra, seguida por una secuencia opcional de
caracteres, que pueden incluir letras, nmeros, signos de dlar ($), caracteres de
subrayadoy smbolos de almohadilla (#). Los dems caracteres no pueden
emplearse. La longitud mximade un identificador es de 30caracteres.
Ejemplosvalidos
X,Y, CodEmpleado, V1, V2_, ES_UNA_VARIABLE_#
Operadores
TIPO DE OPERADOR
OPERADORES
Asignacin
+ (suma)
- (resta)
Aritmticos
* (multiplicacin)
/ (divisin)
** (exponente)
= (igual a)
<> (distinto de)
Relacionales o de Comparacin
AND (y lgico)
Lgicos
NOT (negacin)
OR (o lgico)
Concatenacin
||
Clave primaria
La clave primaria se utiliza para identificar en forma nica cada lnea en la tabla.
Puede ser parte de un registro real, o puede ser un campo artificial (uno que no
tiene nada que ver con el registro real). Una clave primaria puede consistir en uno
Llave fornea
Una llave externa es un campo (o campos) que seala la llave primaria de otra
tabla. El propsito de la llave fornea es asegurar la integridad referencial de los
datos. En otras palabras, slo se permiten los valores que se esperan que
aparezcan en la base de datos.
10
Unique
Una restriccin Unique (nico) asegura que el campo o campos en los que dicha
restriccin se aplica para un registro tendrn un valor diferente con respecto a
cualquier otro registro de la tabla. La restriccin Unique es similar a una
clave primaria, pero no es necesario que los campos con este tipo de restricciones
tengan valores. Si la restriccin est compuesta por ms de un campo, algunos de
ellos pueden tener valores nulos siempre y cuando la combinacin de campos siga
siendo nica en la tabla.
ndices
Un ndice es una estructura de datos que permite acceder a diferentes filas de una
misma tabla a travs de un campo (o campos clave).Un ndice permite un acceso
mucho ms rpido a los datos.
11
Secuencias
Las secuencias (sequences) son objetos que facilitan la generacin automtica de
series numricas.
Los usos ms frecuentes de las secuencias, son:
12
Las secuencias son independientes de las tablas; por tanto, una misma secuencia
se puede usar para generar valores de columnas numricas de una o ms tablas.
Ejemplo de creacin de secuencia:
Funciones y Procedimientos
Procedimientos
Un procedimiento es un subprograma que ejecuta una accin especfica y que no
devuelve ningn valor. Un procedimiento tiene un nombre, un conjunto de
parmetros (opcional) y un bloque de cdigo.
Sintaxis de los procedimientos:
Ejemplo:
13
Funciones
Descripcin de la sintaxis:
14
Ejemplo:
15
necesario liberar reas de la SGA, Oracle aplica el algoritmo menos-usadorecientemente. Si en un momento determinado se libera el rea SQL de un
procedimiento o funcin, la prxima vez que se ejecute se vuelve a cargar el
cdigo objeto, que est almacenado en catlogo, en la SGA.
Llamadas a procedimientos
Desde otro procedimiento, funcin y triggers
Llamadas a funciones
Desde otro procedimiento, funcin y triggers
16
Cursores
Los cursores permiten realizar operaciones sobre los registros devueltos por una
sentencia Select. La utilizacin de cursores es necesaria cuando:
Open
Fetch
Close
17
Si tenemos una nica variable que recoge los datos de todas las columnas, el
formato de la variable sera el siguiente:
18
Ejemplos de cursor:
Vistas
Una vista es un objeto. Una vista es una alternativa para mostrar datos de varias
tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles
a travs de la vista no estn almacenados en la base de datos, en la base de
datos se guarda la definicin de la vista y no el resultado de ella.
19
20
Paquetes
Un paquete es una estructura que agrupa objetos de PL/SQL compilados
(procedures, funciones, variables, tipos, entre otros) en la base de datos. Esto nos
permite agrupar la funcionalidad de los procesos en programas.
Los Paquetes estn divididos en 2 partes: especificacin (obligatoria) y cuerpo (no
obligatoria). La especificacin o encabezado es la interfaz entre el Paquete y las
aplicaciones que lo utilizan y es all donde se declaran los tipos, variables,
constantes, excepciones, cursores, procedimientos y funciones que podrn ser
invocados desde fuera del paquete.
.
Para crear la especificacin de un paquete la sintaxis general es la siguiente:
negra.
Slo
las
declaraciones
hechas en la especificacin del paquete son visibles y accesibles desde fuera del
paquete (por otras aplicaciones o procedimientos almacenados) quedando los
21
Triggers
Un trigger o disparador es un bloque PL/SQL asociado a una tabla, que se
ejecuta como consecuencia de una determinada instruccin SQL (una operacin
DML: INSERT, UPDATE o DELETE) sobre dicha tabla.
22
AFTER
23
de
que
no
es necesario
declararlas, son
de
tipo %ROWTYPE y contienen una copia del registro antes (OLD) y despus(NEW)
de la accin SQL (INSERT, UPDATE, DELTE) que ha ejecutado el trigger.
Utilizando esta variable podemos acceder a los datos que se estn insertando,
actualizando o borrando.
24
25
4. Crear una funcin que reciba una fecha y devuelva el ao, en nmero, de la
fecha proporcionada y lo registre en una tabla temp.
26
Salida al ejecutarlo:
27
Creacin de la tabla:
28
registrar_depto:
procedimiento
permite
recibe
el
nombre
la
localidad
del
nuevo
departamento.
Creacin de la cabecera:
29
Creacin de cuerpo:
30
31
32
Solucionario
1. Cree una secuencia llamada SEQ_TEMP, que inicie en 1
2. Actualizar los vendedores con una comisin mayor que $350 con un
incremento del 15% de su salario. Si la operacin afecta a ms de tres
empleados, deshacer la transaccin, en cualquier otro caso validar la
transaccin
33
34
Salida al ejecutarlo:
35
Creacin de la tabla:
36
Creacin de la cabecera:
37
38
Salida:
10. Crear un programa en PL/SQL que muestre los dos empleados que ganan
menos de cada puesto.
39
Salida:
40