Trewsdf
Páginas: 5 (1052 palabras)
Publicado: 28 de agosto de 2010
- Falla del Sistema (el usuario identifica la aplicación y el programa) ( Se asigna al Dpto. de Sistemas
- El usuario no tiene permiso o no puede acceder ( se asigna al Dpto. de Seguridad
El tipo de operación determina el nivelde resolución. Una vez que el funcionario asignado dé el finiquito, el incidente queda resuelto y se cierra el RECLAMO (CERRADO).
[pic]
Tema 1: (40P) : (10 P por la especificación correcta. 20 P por la primera función y 10 para la segunda).
Cree el paquete PK_RECLAMOS que conste de:
• La tabla indexada T_RECLAMOS compuesta de los siguientes elementos:
- ID_RECLAMO
-NOMYAPELL _USUARIO
- FECHA_RECLAMO
- NOMBRE_AREA_ACTUAL
- FECHA_MOVIMIENTO
- OBSERVACION
- DIAS_ATRASO
• La función F_VERIFICAR_ATRASADOS que retorna una tabla del tipo T_RECLAMOS con la lista de reclamos cuyo estado no sea ‘CERRADO’ y que ya hayan superado el plazo asignado (FECHA_PLAZO). Nótese que para ocurrencia debe determinarse el área en el que se encuentraactualmente
• Redefina la función para que reciba como parámetro el nombre de una empresa (saber todos los reclamos atrasados de la empresa).
CREATE OR REPLACE PACKAGE PK_RECLAMOS AS
TYPE R_RECLAMO IS RECORD
(ID_RECLAMO NUMBER(10),
NOMYAPELL_USUARIO VARCHAR2(60),
FECHA_RECLAMO DATE,
NOMBRE_AREA_ACTUAL VARCHAR2(30),
FECHA_MOVIMIENTO DATE,
OBSERVACION VARCHAR2(2000),DIAS_ATRASO NUMBER(3));
TYPE T_RECLAMOS IS TABLE OF R_RECLAMO
INDEX BY BINARY_INTEGER;
FUNCTION F_VERIFICAR_ATRASADOS RETURN T_RECLAMOS;
FUNCTION F_VERIFICAR_ATRASADOS(P_EMPRESA VARCHAR2) RETURN T_RECLAMOS;
END;
/
CREATE OR REPLACE PACKAGE BODY PK_RECLAMOS IS
-- Función sin parámetros --
FUNCTION F_VERIFICAR_ATRASADOS RETURN T_RECLAMOS IS
CURSORC_RECLAMOS IS
SELECT R.ID_RECLAMO, RTRIM(U.NOMBRE)||', '|| U.APELLIDO NOMYAPELL,
R.FECHA_RECLAMO,ROUND(SYSDATE-R.FECHA_PLAZO) DIAS_ATRASO
FROM RECLAMOS R, USUARIOS U, ESTADOS_RECLAMOS E
WHERE U.ID_USUARIO = R.ID_USUARIO
AND E.ID_ESTADO = R.ID_ESTADO
AND E.DESCRIPCION 'CERRADO'AND SYSDATE > FECHA_PLAZO;
CURSOR C_TAREA_ACTUAL(P_RECLAMO NUMBER) IS
SELECT A.DESCRIPCION NOMBRE_AREA,
T.FECHA_MOV, T.OBSERVACION
FROM TAREAS T, EMPLEADOS E, AREAS A
WHERE E.CEDULA = T.CEDULA
AND A.ID_AREA = E.ID_AREA
AND T.FECHA_MOV = (SELECTMAX(FECHA_MOV)
FROM TAREAS
WHERE ID_RECLAMO = P_RECLAMO)
AND T.ID_RECLAMO = P_RECLAMO;
V_RECLAMO T_RECLAMOS;
V_IND NUMBER := 0;
BEGIN
FOR REGREC IN C_RECLAMOS LOOP
V_RECLAMO(V_IND).ID_RECLAMO := REGREC.ID_RECLAMO;V_RECLAMO(V_IND).NOMYAPELL_USUARIO := REGREC.NOMYAPELL;
V_RECLAMO(V_IND).FECHA_RECLAMO := REGREC.FECHA_RECLAMO;
V_RECLAMO(V_IND).DIAS_ATRASO := REGREC.DIAS_ATRASO;
FOR REGT IN C_TAREA_ACTUAL(REGREC.ID_RECLAMO) LOOP
V_RECLAMO(V_IND).NOMBRE_AREA_ACTUAL := REGT.NOMBRE_AREA;
V_RECLAMO(V_IND).FECHA_MOVIMIENTO := REGT.FECHA_MOV;...
Leer documento completo
Regístrate para leer el documento completo.