330 likes | 494 Views
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%)
E N D
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/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 1 Bloque 2 Bloque 2 Forma correcta Forma incorrecta
Ejemplo de Bloques Anidados Bloque 1 Bloque 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> [notnull][:=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 [notnull]: 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 «notnull», 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
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 usos • Dada la tabla «auto», con la estructura que se muestra a continuación, se asignarán valores a la variable
Asignando valores con sentencia Select • Otra forma de asignar valores a las variables es utilizando la sentencia «Select…into» • Su estructura es la siguiente: Selectlista_valoresintolista_variables Fromtablas_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
Consideraciones respecto a la asignación mediante Select .. Into • Para el select .. intose 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 • TooManyRows: 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 Incorrecto) Descripción del error existente