View
10
Download
0
Category
Preview:
Citation preview
Presentación Asignatura POF030Semana 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/SQLAprendizajes 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 2
Bloque 1
Bloque 2
Forma correcta Forma incorrecta
Ejemplo de Bloques Anidados
Bloque 1Bloque 2
Variables en Bloques PL/SQLAprendizajes 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_variablesFrom 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
Recommended