cr pl-sql para principiantes
TRANSCRIPT
-
8/19/2019 cr PL-SQL Para Principiantes
1/40
PROYECTO
MANUAL DE PL SQL PARA PRINCIPIANTES
-
8/19/2019 cr PL-SQL Para Principiantes
2/40
Universidad Tecnológica Costarricense
2
Contenido
Conceptos Básicos y definición de PL/SQL ...................................................... 3
Que es PL/SQL .................................................................................................. 3
Características 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
Llaveforánea ..................................................................................................... 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
-
8/19/2019 cr PL-SQL Para Principiantes
3/40
Universidad Tecnológica Costarricense
3
Conceptos Básicos y definición de PL/SQL
Que es PL/SQL
PL-SQL es el lenguaje de programación que viene incrustado en la Base de Datos
Oracle, sus siglas en inglés corresponden a “Procedural Language –
StructuredQueryLanguage” y al español se puede traducir como “Lenguaje de
Procedimiento – Lenguaje de Consulta Estructurado”.
El lenguaje PL-SQL permite soportar todas las consultas a la Base de Datos
Oracle, ya que para manipular los datos se usan las mismas instrucciones del
lenguaje SQL estándar usado en las Bases de Datos.
PL-SQL es un lenguaje que está estructurado en bloques de código, los que son
utilizados para construir PL-SQL Packages en Oracle, PL-SQL Procedures en
Oracle, PL-SQL Function en Oracle y scripts de código.
Los desarrolladores pueden construir sus bloques PL-SQL y almacenarlos como
objetos en el entorno de la Base de Datos Oracle. Estos programas o paquetes en
PL-SQL son ejecutados en el servidor lo que permite ahorrar recursos en elentorno del cliente.
Los programas o PL-SQL Packages en Oracle solo pueden ser accesados o
ejecutados por los usuarios debidamente autorizados.
-
8/19/2019 cr PL-SQL Para Principiantes
4/40
Universidad Tecnológica Costarricense
4
Características de PL/SQL
Bloques PL-SQL
Tipos de Bloques
Tipos de Datos Oracle/PL-SQL
Identificadores
Operadores
Variables
Constantes
Bloques PL/SQL
Un programa de PL/SQL está compuesto por bloques. Un programa está
compuesto como mínimo de un bloque. Los bloques de PL/SQL pueden ser de los
siguientes tipos:
Bloques anónimos Subprogramas
Estructura de un Bloque
Los bloques PL/SQL presentan una estructura específica compuesta de tres
partes bien diferenciadas:
La sección declarativa: en donde se declaran todas las constantes y
variables que se van a utilizar en la ejecución del bloque. La sección de ejecución: que incluye las instrucciones a ejecutar en el
bloque PL/SQL.
La sección de excepciones: en donde se definen los manejadores de
errores que soportará el bloque PL/SQL.
-
8/19/2019 cr PL-SQL Para Principiantes
5/40
Universidad Tecnológica Costarricense
5
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
Los bloques PL/SQL son de varios tipos:
Anónimos (Anonymous blocks): Se construyen de forma dinámica y se
ejecutan una sola vez.
Con nombre (Named blocks): Son bloques con nombre, que al igual que
el anterior se construyen, generalmente, de forma dinámica y se ejecutan
una sola vez.
Subprogramas: Procedimientos, paquetes o funciones almacenados en la
BD. No suelen cambiar después de su construcción y se ejecutan múltiples
veces mediante una llamada call.
-
8/19/2019 cr PL-SQL Para Principiantes
6/40
Universidad Tecnológica Costarricense
6
Disparadores (Triggers): Son bloques con nombre que también se
almacenan en la BD. Tampoco suelen cambiar después de su construcción
y se ejecutan varias veces. Se ejecutan de forma automática ante algún
suceso de disparo, que será una orden del lenguaje de manipulación dedatos (INSERT, UPDATE o DELETE) que se ejecuta sobre una tabla de la
BD.
Tipos de Datos Oracle/PL-SQL
Cada constante y variable tiene un tipo de dato en el cual se especifica el formato
de almacenamiento, restricciones y rango de valores validos.
PL/SQL proporciona una variedad predefinida de tipos de datos. Casi todos los
tipos de datos manejados por PL/SQL son similares a los soportados por SQL.
Los tipos de datos más comunes:
VARCHAR2: Almacena datos de tipo carácter empleando sólo la cantidad
necesaria aún cuando la longitud máxima sea mayor.
BOOLEAN: Se emplea para almacenar valores TRUE o FALSE.
-
8/19/2019 cr PL-SQL Para Principiantes
7/40
Universidad Tecnológica Costarricense
7
DATE: Almacena datos de tipo fecha. Las fechas se almacenan
internamente como datos numéricos, por lo que es posible realizar
operaciones aritméticas con ellas.
NUMBER: Almacena números enteros o de punto flotante, virtualmente de
cualquier longitud, aunque puede ser especificada la precisión (Número de
dígitos) y la escala que es la que determina el número de decimales.
CHAR: Almacena datos de tipo carácter con una longitud máxima de 32767
y cuyo valor de longitud por default es.
Atributos de tipo: Un atributo de tipo PL/SQL es un modificador que puedeser usado para obtener información de un objeto de la base de datos. El
atributo %TYPE permite conocer el tipo de una variable, constante o campo
de la base de datos. El atributo %ROWTYPE permite obtener los tipos de
todos los campos de una tabla de la base de datos, de una vista o de un
cursor.
-
8/19/2019 cr PL-SQL Para Principiantes
8/40
Universidad Tecnológica Costarricense
8
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, números, signos de dólar ($), caracteres de
subrayadoy símbolos de almohadilla (#). Los demás caracteres no pueden
emplearse. La longitud máximade un identificador es de 30caracteres.
Ejemplosvalidos
X,Y, CodEmpleado, V1, V2_, ES_UNA_VARIABLE_#
Operadores
TIPO DE OPERADOR OPERADORES
Asignación := (dos puntos + igual)
Aritméticos
+ (suma)
- (resta)
* (multiplicación)
/ (división)** (exponente)
-
8/19/2019 cr PL-SQL Para Principiantes
9/40
Universidad Tecnológica Costarricense
9
Relacionales o de Comparación
= (igual a)
(distinto de)
< (menor que)
> (mayor que)>= (mayor o igual a)
-
8/19/2019 cr PL-SQL Para Principiantes
10/40
Universidad Tecnológica Costarricense
10
o más campos en una tabla. Cuando se utilizan múltiples campos como clave
primaria, se los denomina claves compuestas.
Las claves primarias pueden especificarse cuando se crea la tabla:
O cambiando la estructura existente de la tabla utilizando ALTER TABLE.
Llave foránea
Una llave externa es un campo (o campos) que señala la llave primaria de otratabla. El propósito de la llave foránea es asegurar la integridad referencial de los
datos. En otras palabras, sólo se permiten los valores que se esperan que
aparezcan en la base de datos.
-
8/19/2019 cr PL-SQL Para Principiantes
11/40
Universidad Tecnológica Costarricense
11
Unique
Una restricción Unique (único) asegura que el campo o campos en los que dicha
restricción se aplica para un registro tendrán un valor diferente con respecto a
cualquier otro registro de la tabla. La restricción Unique es similar a unaclave primaria, pero no es necesario que los campos con este tipo de restricciones
tengan valores. Si la restricción está compuesta por más de un campo, algunos de
ellos pueden tener valores nulos siempre y cuando la combinación 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 través de un campo (o campos clave).Un índice permite un acceso
mucho más rápido a los datos.
Las sentencias de SQL para manipular índices son:
La sintaxis para la creación de índices es la siguiente:
-
8/19/2019 cr PL-SQL Para Principiantes
12/40
Universidad Tecnológica Costarricense
12
La palabra clave UNIQUE especifica que no pueden existir claves duplicadas en el
índice.ASC | DESC especifican el criterio de ordenación elegido, ascendente o
descendente, por defecto es ascendente.
En la siguiente imagen se muestra como se crea o elimina un índex.
Los índices usados por las restricciones "primarykey" y "unique" no pueden
eliminarse con "dropindex", se eliminan automáticamente cuando quitamos la
restricción.
Si eliminamos una tabla, todos los índices asociados a ella se eliminan.
Secuencias
Las secuencias (sequences) son objetos que facilitan la generación automática de
series numéricas.
Los usos más frecuentes de las secuencias, son:
La generación automática de claves primarias
Coordinar las claves de múltiples filas o tablas.
-
8/19/2019 cr PL-SQL Para Principiantes
13/40
Universidad Tecnológica Costarricense
13
Las secuencias son independientes de las tablas; por tanto, una misma secuencia
se puede usar para generar valores de columnas numéricas de una o más tablas.
Ejemplo de creación de secuencia:
Funciones y Procedimientos
Procedimientos
Un procedimiento es un subprograma que ejecuta una acción específica y que nodevuelve ningún valor. Un procedimiento tiene un nombre, un conjunto de
parámetros (opcional) y un bloque de código.
Sintaxis de los procedimientos:
Ejemplo:
-
8/19/2019 cr PL-SQL Para Principiantes
14/40
Universidad Tecnológica Costarricense
14
Funciones
Una función es un bloque nombrado PL/SQL que devuelve un valor, puede
estar almacenada en la B.D., como objeto de la B.D., para repetidas
ejecuciones. Una función puede ser llamada como parte de una expresión.
Sintaxis de las funciones:
Descripción de la sintaxis:
-
8/19/2019 cr PL-SQL Para Principiantes
15/40
Universidad Tecnológica Costarricense
15
Nombre-parámetro: es el nombre que queramos dar al parámetro.
Podemos utilizar múltiples parámetros. En caso de no necesitarlos,
podemos omitir los paréntesis.
IN: especifica que el parámetro es de entrada y que por tanto dichoparámetro tiene que tener un valor en el momento de llamar a la función
o procedimiento. Si no se especifica nada, los parámetros son por
defecto de tipo entrada.
OUT: especifica que se trata de un parámetro de salida. Son parámetros
cuyo valor es devuelto después de la ejecución el procedimiento al
bloque PL/SQL que lo llamó. Las funciones PLSQL no admiten
parámetros de salida.
IN OUT: Son parámetros de entrada y salida a la vez.
Tipo-de-dato: Indica el tipo de dato PLSQL que corresponde al
parámetro (NUMBER, VARCHAR2, etc).
Ejemplo:
Cuando se crea un procedimiento o función, Oracle automáticamente compila el
código fuente, guarda el código objeto en un área compartida de la SGA (System
Global Area) y almacena tanto el código fuente como el código objeto en catálogos
del diccionario de datos.
El código objeto permanece en la SGA, por tanto, los procedimientos o funciones
se ejecutan más rápidamente y lo pueden compartir muchos usuarios. Cuando es
-
8/19/2019 cr PL-SQL Para Principiantes
16/40
Universidad Tecnológica Costarricense
16
necesario liberar áreas de la SGA, Oracle aplica el algoritmo „menos-usado-
recientemente‟. Si en un momento determinado se libera el área SQL de un
procedimiento o función, la próxima vez que se ejecute se vuelve a cargar el
código objeto, que está almacenado en catálogo, en la SGA.
Llamadas a procedimientos
Desde otro procedimiento, función y triggers
Llamadas a funciones
Desde otro procedimiento, función y triggers
Desde un bloque anónimo
Desde una instrucción SQL
-
8/19/2019 cr PL-SQL Para Principiantes
17/40
Universidad Tecnológica Costarricense
17
Cursores
Los cursores permiten realizar operaciones sobre los registros devueltos por una
sentencia Select. La utilización de cursores es necesaria cuando:
Se necesita tratamiento fila a fila
En sentencias SELECT que devuelven más de una fila
Operaciones con cursores
Declare
Se declara el cursor asignándole nombre y asociándole a una consulta.
Open
Abre el cursor y lo inicializa para que devuelva las filas.
Ejecuta la consulta asociada al cursor.
Fetch
Lee los datos del cursor con la sentencia FETCH.
Devuelve la siguiente fila en el conjunto activo.
Los datos devueltos se almacenan en variables de control o en un registro.
FETCH ... INTO ...
Close
Desactiva el cursor y libera los recursos. CLOSE cursor_1;
-
8/19/2019 cr PL-SQL Para Principiantes
18/40
Universidad Tecnológica Costarricense
18
Declaración del cursor: lo tenemos que declarar en la zona de declaraciones,
con el siguiente formato:
Apertura del cursor: Deberá colocarse en la zona de instrucciones, con el
siguiente formato:
Al hacerlo se ejecuta automáticamente la sentencia select y sus resultados se
almacenan en las estructuras internas de memoria manejadas por el cursor.
Recogida de información: Para recuperar la información anteriormente guardada
en las estructuras de memoria interna tenemos que usar el siguiente formato:
Si tenemos una única variable que recoge los datos de todas las columnas, el
formato de la variable sería el siguiente:
Si tenemos una lista de variables, cada una recogerá la columna correspondiente
de la cláusula select, por lo que serán del mismo tipo que las columnas.
Cierre del cursor:
-
8/19/2019 cr PL-SQL Para Principiantes
19/40
Universidad Tecnológica Costarricense
19
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 través de la vista no están almacenados en la base de datos, en la base de
datos se guarda la definición de la vista y no el resultado de ella.
-
8/19/2019 cr PL-SQL Para Principiantes
20/40
Universidad Tecnológica Costarricense
20
La sintaxis básica para crear una vista es la siguiente:
El contenido de una vista se muestra con un "select":
¿Por qué usar Vistas?
Para restringir el acceso a la B.D.
Para realizar consultas complejas de manera fácil.
Para obtener una independencia de los datos
Para presentar diferentes vistas de los mismos datos.
-
8/19/2019 cr PL-SQL Para Principiantes
21/40
Universidad Tecnológica Costarricense
21
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 están divididos en 2 partes: especificación (obligatoria) y cuerpo (no
obligatoria). La especificación 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 podrán ser
invocados desde fuera del paquete.
.
Para crear la especificación de un paquete la sintaxis general es la siguiente:
En el cuerpo del paquete se implementa la especificación del mismo. El cuerpocontiene los detalles de implementación y declaraciones privadas, manteniéndose
todo esto oculto a las aplicaciones externas, siguiendo el conocido concepto de
“caja negra”. Sólo las declaraciones
hechas en la especificación del paquete son visibles y accesibles desde fuera del
paquete (por otras aplicaciones o procedimientos almacenados) quedando los
-
8/19/2019 cr PL-SQL Para Principiantes
22/40
Universidad Tecnológica Costarricense
22
detalles de implementación del cuerpo del paquete totalmente ocultos e
inaccesibles para el exterior.
La sintaxis general para crear el cuerpo de un paquete es muy parecida a la de la
especificación, tan solo se añade la palabra clave BODY, y se implementa el
código de los subprogramas.
Triggers
Un trigger o disparador es un bloque PL/SQL asociado a una tabla, que seejecuta como consecuencia de una determinada instrucción SQL (una operación
DML: INSERT, UPDATE o DELETE) sobre dicha tabla.
-
8/19/2019 cr PL-SQL Para Principiantes
23/40
Universidad Tecnológica Costarricense
23
Temporalidad del Evento: AFTER / BEFORE
BEFORE: Se ejecutan la acción asociada antes de que la sentencia sea
ejecutada.
Decidir si la acción debe realizarse o no
Utilizar valores alternativos para la sentencia
AFTER
Ejecutan la acción asociada después de que se haya ejecutado la sentencia
Ejemplo creación de trigger
-
8/19/2019 cr PL-SQL Para Principiantes
24/40
Universidad Tecnológica Costarricense
24
Utilización de :OLD y :NEW
Dentro del ámbito de un trigger disponemos de las variables OLD y NEW. Estas
variables se utilizan del mismo modo que cualquier otra variable PL/SQL, con la
salvedad de que no es necesario declararlas, son de
tipo %ROWTYPE y contienen una copia del registro antes (OLD) y después(NEW)
de la acción SQL (INSERT, UPDATE, DELTE) que ha ejecutado el trigger.
Utilizando esta variable podemos acceder a los datos que se están insertando,
actualizando o borrando.
-
8/19/2019 cr PL-SQL Para Principiantes
25/40
Universidad Tecnológica Costarricense
25
Ejemplos varios en PL/SQL
1. Crear una vista que se llame DETALLE_PAGOS_CREDITO que contenga
el nombre del cliente, apellidos, monto que adeuda y la mensualidad de
todos los tipos de pago que sean a crédito.
2. Escribir un bloque PL/SQL que cuente el número de filas que hay en la
tabla clientes, y guarde el resultado en la variable v_contador.
3. Realizar un procedimiento que permita sumar dos números y guardarlo en
una variable llamada SUMA.
-
8/19/2019 cr PL-SQL Para Principiantes
26/40
Universidad Tecnológica Costarricense
26
4. Crear una función que reciba una fecha y devuelva el año, en número, de la
fecha proporcionada y lo registre en una tabla temp.
5. Crear un procedimiento que permita borrar un empleado, a partir del código
del empleado como parámetro de entrada.
6. Crear un procedimiento que permita insertar un estado en una tabla
llamada TM_ESTADO
-
8/19/2019 cr PL-SQL Para Principiantes
27/40
Universidad Tecnológica Costarricense
27
7. Crear un procedimiento que muestre el nombre y la fecha de ingreso de los
empleados ordenados por nombre, para ello utilice un cursor.
Salida al ejecutarlo:
8. Crear un trigger llamado AUDITAR_EMP_MOVIM, que permita llevar una
bitácora de las operaciones de inserción o borrado de datos que se realicen
en la tabla emp según las siguientes especificaciones: Crear una tabla llamada bitacora_emp con un campo tipo varchar
llamado detalle
El trigger se debe crear para que registre en la bitácora antes de que
la acción a realizar se ejecute, utilizando un before.
-
8/19/2019 cr PL-SQL Para Principiantes
28/40
Universidad Tecnológica Costarricense
28
Cuando se produzca cualquier manipulación se insertará una fila en
dicha tabla que contendrá: Fecha, número de empleado, y el tipo de
operación realizada.
Creación de la tabla:
Creación del trigger:
Cuanto se ejecuta una acción de eliminación o inserción en la tabla emp, se
dispara el trigger y registra en la tabla bitácora como se muestra en la imagen:
-
8/19/2019 cr PL-SQL Para Principiantes
29/40
Universidad Tecnológica Costarricense
29
9. Crear un paquete completo para dar mantenimiento a los departamentos
de la tabla DEPT. El paquete se llamará mantenimientos_deptos y deberá
incluir, los siguientes subprogramas:
registrar_depto: permite insertar un departamento nuevo. Elprocedimiento recibe el nombre y la localidad del nuevo
departamento.
borrar_depto: permite borrar un departamento.
modificar_loc_depto: modifica la localidad del departamento. El
procedimiento recibirá el número del departamento a modificar y la
nueva localidad.
mostrar_depto: mostrara los datos de un departamento cuyo número
se pasará como parámetro.
Creación de la cabecera:
-
8/19/2019 cr PL-SQL Para Principiantes
30/40
Universidad Tecnológica Costarricense
30
Creación de cuerpo:
-
8/19/2019 cr PL-SQL Para Principiantes
31/40
Universidad Tecnológica Costarricense
31
Resuelva los siguientes ejercicios:
1. Cree una secuencia llamada SEQ_TEMP, que inicie en 1
2. Actualizar los vendedores con una comisión mayor que $350 con unincremento del 15% de su salario. Si la operación afecta a más de tres
empleados, deshacer la transacción, en cualquier otro caso validar la
transacción
3. Insertar en la tabla TEMP 100 filas. En la primera columna se insertará un
índice secuencial (1, 2, 3...) y en la segunda columna un comentario
indicando si el número generado es par o impar.
4. Crear la función BAJA_DEPT con un argumento. Dado un número dedepartamento, borrarlo.
5. Crear la función ALTA_DEPT con tres argumentos: número, nombre y
localidad del departamento. Este procedimiento debe comprobar que los
números de departamento son múltiplos de 10, si no es así daría un error
6. Crear un procedimiento utilizando cursores que muestre el nombre y el
departamento de los empleados ordenándolos por departamento.
7. Crear un trigger llamado AUDITAR_DEPT_MOVIM, que permita llevar una
bitácora de las operaciones de inserción o borrado de datos que se realicen
en la tabla DEPT según las siguientes especificaciones:
Crear una tabla llamada bitacora_dept con un campo tipo varchar
llamado detalle
El trigger se debe crear para que registre en la bitácora despues de
que la acción a realizar se ejecute, utilizando un after.
Cuando se produzca cualquier manipulación se insertará una fila en
dicha tabla que contendrá: Fecha, número de departamento, nombre
del departamento, y el tipo de operación realizada.
-
8/19/2019 cr PL-SQL Para Principiantes
32/40
Universidad Tecnológica Costarricense
32
8. Crear un paquete completo para dar mantenimiento a los empleados de la
tabla EMP. El paquete se llamará mantenimientos_empleados y deberá
incluir, los siguientes subprogramas:
registrar_empleado: permite insertar un empleado nuevo. Elprocedimiento recibe los datos necesarios del empleado.
borrar_empleado: permite borrar un departamento.
modificar_puesto_empleado: modificar la información del empleado.
El procedimiento recibirá el número del empleado y modificara el
puesto del mismo.
mostrar_empleado: mostrara los datos de un empleado cuyo número
se pasará como parámetro.
9. Crear un programa que muestre el nombre y el monto del salario de los
cinco empleados que tienen el salario más alto.
10.Crear un programa que muestre los dos empleados que ganan menos de
cada puesto.
-
8/19/2019 cr PL-SQL Para Principiantes
33/40
Universidad Tecnológica Costarricense
33
Solucionario
1. Cree una secuencia llamada SEQ_TEMP, que inicie en 1
2. Actualizar los vendedores con una comisión mayor que $350 con un
incremento del 15% de su salario. Si la operación afecta a más de tres
empleados, deshacer la transacción, en cualquier otro caso validar la
transacción
3. Insertar en la tabla TEMP 100 filas. En la primera columna se insertará un
índice secuencial (1, 2, 3...) y en la segunda columna un comentario
indicando si el número generado es par o impar.
-
8/19/2019 cr PL-SQL Para Principiantes
34/40
Universidad Tecnológica Costarricense
34
4. Crear la función BAJA_DEPT con un argumento. Dado un número de
departamento, borrarlo.
5. Crear la función ALTA_DEPT con tres argumentos: número, nombre y
localidad del departamento. Este procedimiento debe comprobar que losnúmeros de departamento son múltiplos de 10, si no es así daría un error
-
8/19/2019 cr PL-SQL Para Principiantes
35/40
Universidad Tecnológica Costarricense
35
6. Crear un procedimiento utilizando cursores que muestre el nombre y el
departamento de los empleados ordenándolos por departamento.
Salida al ejecutarlo:
7. Crear un trigger llamado AUDITAR_DEPT_MOVIM, que permita llevar una
bitácora de las operaciones de inserción o borrado de datos que se realicen
en la tabla DEPT según las siguientes especificaciones:
Crear una tabla llamada bitacora_dept con un campo tipo varchar
llamado detalle
El trigger se debe crear para que registre en la bitácora después deque la acción a realizar se ejecute, utilizando un after.
Cuando se produzca cualquier manipulación se insertará una fila en
dicha tabla que contendrá: Fecha, número de departamento, nombre
del departamento, y el tipo de operación realizada.
-
8/19/2019 cr PL-SQL Para Principiantes
36/40
Universidad Tecnológica Costarricense
36
Creación de la tabla:
Creación del trigger:
Cuanto se ejecuta una acción de eliminación o inserción en la tabla DEPT, se
dispara el trigger y registra en la tabla bitácora como se muestra en la imagen:
8. Crear un paquete completo para dar mantenimiento a los empleados de la
tabla EMP. El paquete se llamará mantenimientos_empleados y deberá
incluir, los siguientes subprogramas:
-
8/19/2019 cr PL-SQL Para Principiantes
37/40
Universidad Tecnológica Costarricense
37
registrar_empleado: permite insertar un empleado nuevo. El
procedimiento recibe los datos necesarios del empleado.
borrar_empleado: permite borrar un departamento.
modificar_puesto_empleado: modificar la información del empleado.El procedimiento recibirá el número del empleado y modificara el
puesto del mismo.
mostrar_empleado: mostrara los datos de un empleado cuyo número
se pasará como parámetro.
Creación de la cabecera:
Creación del cuerpo:
-
8/19/2019 cr PL-SQL Para Principiantes
38/40
Universidad Tecnológica Costarricense
38
-
8/19/2019 cr PL-SQL Para Principiantes
39/40
Universidad Tecnológica Costarricense
39
9. Crear un programa en PL/SQL que muestre el nombre y el salario de los
cinco empleados que tienen el salario más alto.
Salida:
10.Crear un programa en PL/SQL que muestre los dos empleados que ganan
menos de cada puesto.
-
8/19/2019 cr PL-SQL Para Principiantes
40/40
Universidad Tecnológica Costarricense
Salida: