Presentación Asignatura
POF030
Semana 1
Contenido
• En forma general, los conceptos que se estudiarán en
la asignatura son:
–
–
–
–
–
–
–
Procedures
Functions
Packages
Triggers
Cursors
Exceptions
Others
Evaluaciones
• Las evaluaciones se compondrán de la
siguiente forma:
– Pruebas (60%)
• Trabajo 1: 20%
• Prueba 2: 20%
• Prueba 3: 20%
– Controles, tareas: (20%)
• Controles
• Tareas y/o trabajos
– Proyecto Semestral: (20%)
• 1 proyecto semestral: 20%
Proyecto Semestral
• Se debe desarrollar un sistema de mediana
dificultad que solucione una problemática
propuesta por los grupos de trabajo
• Se mostrarán avances durante el semestre
• El proyecto debe estar coordinado con los
desarrollos de las asignaturas de .NET y Java
Bloques PL/SQL
Aprendizajes esperados
• Construye procedimientos almacenados, triggers de
base de datos, cursores y funciones que ayuden o
implementen directamente soluciones a la lógica de
negocio recogida en la captura de requerimientos de
un sistema
• Discernir cuando usar un procedimientos
almacenados, trigger de base de datos, cursor y
función para implementar una solución a la lógica de
negocio recogida en la captura de requerimientos de
un sistema
Conceptos Claves
• El lenguaje PL/SQL es el ofrecido por Oracle para
programar en sus bases de datos
• Es una ampliación de SQL, con elementos típicos de
los lenguajes de programación como los ciclos,
control de flujos, uso de variables, etc.
• Con PL/SQL se puede programar también para otras
herramientas Oracle:
–
–
–
–
Oracle Forms
Oracle Reports
Oracle Graphics
Oracle Application Server
Conceptos Claves
• El bloque es la unidad mínima de programación en
PL/SQL
Bloques
• Existen 3 tipos de bloques
– Bloques Anónimos:
• No tienen un nombre identificatorio
• No se almacenan en la base de datos
• Su existencia es mientras dura su ejecución
– Bloques Anonimados:
• Tienen un nombre identificatorio
• No se almacenan en la base de datos
• Su existencia es mientras dura su ejecución
Bloques
– Subprogramas:
• Tienen un nombre identificatorio
• Se almacenan en la base de datos
• Su existencia es mientras esté registrada en la base de
datos
Partes de un Bloque
– Un bloque puede estar compuesto por tres partes:
• Sección Declarativa: En esta sección se declaran todas
las variables, constantes o estructuras necesarias que
utilizará el programa
• Sección de Ejecución: En esta sección se incorporan
todos los códigos necesarios para la ejecución del
programa
• Sección de Manejo de Excepciones: En esta sección se
incorporan todos los códigos necesarios para controlar
las excepciones planificadas o no que se produzcan en
la ejecución del código
Partes de un Bloque Anónimo
– Sección Declarativa: Esta sección se reconoce porque
comienza con el comando DECLARE
– Sección de Ejecución: Esta sección se reconoce porque
comienza con el comando BEGIN
– Sección de Manejo de Excepciones: Esta sección se
reconoce porque comienza con el comando EXCEPTION
– Todo bloque termina donde aparece el comando END
– La sección de ejecución es la única obligatoria, las demás
son opcionales según las necesidades que se tengan
Ejemplo de un Bloque Anónimo
Sección Declarativa
Sección de Ejecución
Sección de Manejo de
Excepciones
Generalidades
Forma de agregar
comentarios al código
Cada sentencia debe
terminar con punto y
coma (;)
Bloques Anidados
• Un bloque puede estar anidado
dentro de otro bloque
Bloque 1
Bloque 1
Bloque 2
Bloque 2
Forma correcta
Forma incorrecta
Ejemplo de Bloques Anidados
Bloque 2
Bloque 1
Variables en Bloques PL/SQL
Aprendizajes esperados
• Construye procedimientos almacenados, triggers de
base de datos, cursores y funciones que ayuden o
implementen directamente soluciones a la lógica de
negocio recogida en la captura de requerimientos de
un sistema
Conceptos Claves
• Las variables y constantes se declaran en la sección
declarativa del bloque
• La asignación de valores a las variables puede ser
realizada en cualquiera de las partes del bloque
Sintáxis
• En general, la sintaxis para declarar un variable y/o constante
es la siguiente:
<Nombre_variable> [constant] <tipo_dato> [not null][:=valor];
• Donde:
<Nombre_variable>: Obligatorio. Es el nombre que se dará a la variable o
constante
[constant]: Opcional. Indica que lo declarado es una constante. Su valor no puede
ser modificado en tiempo de ejecución
<tipo_dato>: Obligatorio. Indica el tipo de dato que tendrá la variable o constante
[not null]: Opcional. Indica que la variable o constante no puede tomar un valor
nulo
[:=valor]: Opcional. Asigna un valor a la variable o constante
Algunas consideraciones
• Una variable o constante no inicializada,
asumirá el valor null
• Las variables o constantes «not null», no
pueden asumir el valor nulo, por lo cual deben
ser inicializadas
• La inicialización puede incluir cualquier
expresión de PL/SQL. Dicha expresión debe
retornar el mismo tipo de dato de la variable o
constante
Ejemplo de Declaraciones
Declaraciones Implícitas
• Se pueden declarar variables o constantes de
forma que «asuman» el tipo de datos de otra
variable o constantes u otra estructura de la
base de datos
– %Type: Se utiliza para que la variable declarada de
tipo escalar, asuma el tipo de datos de otra
variable o constante
– %Rowtype: Se utiliza para definir una variable de
tipo fila
Ejemplo de declaraciones
implícitas
Ejemplo de usos
Ejemplo de usos
Ejemplo de usos
• Dada la tabla «auto», con la estructura que se
muestra a continuación, se asignarán valores a
la variable
Ejemplo de usos
Asignando valores con sentencia
Select
• Otra forma de asignar valores a las variables es utilizando la
sentencia «Select…into»
• Su estructura es la siguiente:
Select lista_valores into lista_variables
From tablas_origen
• Donde:
– Lista_valores: Lista de campos , otras variables o valores que serán
almacenados en la lista de campos. Se separa por comas (,) en caso de
existir mas de un valor
– Lista_variables: Lista de variables que recibirán los valores extraídos. Se
separa por comas (,) en caso de existir mas de una variable
– Tablas_origen: Tablas de donde proviene la información
Ejemplo de asignación mediante
Select .. Into
Ejemplo de asignación mediante
Select .. Into
Consideraciones respecto a la
asignación mediante Select .. Into
• Para el select .. into se espera siempre que
devuelva sólo un valor o una fila (según sea el
caso de variable escalar o variable de tipo fila)
• Si la sentencia no devuelve valor alguno o
devuelve más de uno, la ejecución del código
arrojará error
– No Data Found: No encuentra datos
– Too Many Rows: Muchas filas encontradas
Alcance de las variables
• Las variables tienen un alcance local, es decir, son
visibles sólo dentro del bloque al cual pertenecen
• Para los bloques anidados, las variables declaradas en
el bloque contenedor (bloque que contiene a otro
bloque) son visibles para el bloque contenido
• Las variables declaradas en el bloque contenido
(bloque que se declara dentro de otro bloque) son
visibles sólo en forma local a su bloque. El bloque
contenedor no tiene acceso a dicha variable
Ejemplo de Alcance de Variables
(Uso Correcto)
Ejemplo de Alcance de Variables
(Uso Incorrecto)
Descripción del error
existente
Descargar

Conceptos Claves del Software