Tipo de Bloque
PL/SQL
PBY3101: Programación de Base de Datos.
Marzo 2018
Tipos de Bloques
PL/SQL
Tipo de Bloque PL/SQL
Tipos de Bloques
PL/SQL
Un programa PL/SQL
comprende de uno o
más bloques. Estos
bloques pueden
estar
completamente
separado o anidado
dentro de otro
bloque
Tipo de Bloque PL/SQL
Bloques Anónimos
(Anonymous Blocks):
Son bloques “sin nombre”,
no se almacenan en la base
de datos y por lo tanto se
compilan cada vez que son
ejecutados.
Tipo de Bloque PL/SQL
Subprogramas PL/SQL
Son bloques PL/SQL “con
nombre” y que pueden ser
almacenados en la Base de
Datos.
Tipo de Bloque PL/SQL
Procedure
(Procedimiento
Almacenado)
Son bloques PL/SQL que
ejecutan una secuencia
de acciones. “Una vez
compilados quedan en la
Base de Datos” y pueden
ser utilizados por
múltiples aplicaciones. Se
compilan cada vez que
son ejecutados.
Tipo de Bloque PL/SQL
Function (Funciones
Almacenadas)
Son bloques PL/SQL que
tienen las mismas
características de un
procedimiento
almacenado. La
diferencia radica en que
debe retornar un valor.
Tipo de Bloque PL/SQL
Package (Paquetes)
Es una estructura PL/SQL que
permite almacenar en forma
conjunta una serie de objetos
relacionados. Dentro de un
paquete se pueden incluir
procedimientos, funciones,
cursores, tipos y variables.
Las funciones y procedimientos
se pueden agrupar en
estructuras llamadas Package
(Paquetes).
Tipo de Bloque PL/SQL
Trigger (Disparadores)
Es un bloque PL/SQL que se
ejecuta cuando ocurre un
evento particular sobre la
tabla al que está asociado.
Tipo de Bloque PL/SQL
En el ejemplo, se
recuperan datos desde
la Base de Datos,
mediante la utilización
de la sentencia SELECT ..
INTO.
Tipo de Bloque PL/SQL
La sintaxis de sentencia SELECT INTO es la siguiente.
• SELECT lista_campos_seleccionar
• INTO {nombre_variable [,nombre_variable]...
• FROM tabla
• [WHERE condición];
En las próximas clases, se profundizará sobre sentencia SELECT
en PL/SQL.
Tipo de Bloque PL/SQL
En el ejemplo, existen dos bloques PL/SQL.
En el principal se declara la variable v_variable_externa que
puede ser usada por ambos bloques.
En el bloque interno se declara la variable v_variable_interna
que solo puede ser usada en el bloque interno.
Tipo de Bloque PL/SQL
Ámbito y Visibilidad de la Variable
En PL/SQL las referencias a una variable son resueltas de
acuerdo a su alcance y visibilidad dentro de un programa.
• El ámbito de una variable es aquella parte del programa
PL/SQL en la cual la variable es declarada y es accesible.
• La visibilidad de la variable es la parte del programa donde
la variable puede ser accesada sin utilizar un identificador o
etiqueta (qualified).
Tipo de Bloque PL/SQL
Las variables declaradas en un
bloque PL/SQL se consideran
locales a ese bloque y globales
para todos sus sub-bloques. Si
una variable global es re-
declarada en un sub-bloque,
ambas pertenecen al mismo
ámbito, sin embargo, en el sub-
bloque tan sólo la variable
local es visible porque se debe
utilizar un qualified para
referenciar a la global.
Tipo de Bloque PL/SQL
En el ejemplo, en ambos
bloques se declara la
variable
fecha_de_cumple. Por lo
tanto, el bloque interno
mostrará el valor
asignado a su variable 13-
May-1992 y el bloque
externo mostrará el valor
asignado a su variable 20-
Abr-1972.
Tipo de Bloque PL/SQL
Un calificador es un nombre dado a un bloque. Se puede
utilizar un calificador para acceder a las variables que tienen
un ámbito, pero no son visibles.
Tipo de Bloque PL/SQL
Basados en el ejemplo, si en el
bloque interno se desea utilizar
la variable fecha_de_cumple del
bloque principal se debe utilizar
una etiqueta que identifique al
bloque, que en este caso es
padre, por lo tanto ahora en el
bloque interno al referenciar
padre.fecha_de_cumple
mostrará el valor de la variable
del bloque principal y al
referencia sólo fecha_de_cumple
mostrará el valor de la variable
del bloque interno.