Validar Clave Primera e insertar errores
Publicado por Marcelo (1 intervención) el 09/06/2016 23:04:56
Hola estimados alguien me podría orientar como solucionar este ejercicio
El responsable de la logística de ventas de inmuebles quiere controlar de alguna forma el ingreso de las nuevas viviendas que están listas para la venta, usted quiere construir un procedimiento almacenado con un cursor que permita entregar una solución apropiada siguiendo especificaciones que se detallan:
• Simular la solicitud de los datos de la nueva vivienda través del uso de variables de sustitución.
• Controlar las excepciones de:
o Insertar de clave primaria duplicada (usar excepción definida por usuario)
o Insertar de un valor en una columna definida como clave foránea y que no existe como clave foránea.(usar excepción otro)
• Los errores se deben grabar en una tabla llamada errores con la siguiente estructura:
NOMBRE DE COLUMNA TIPO DE DATO DESCRIPCION
SQ_ERROR Numérico de largo 10 (obligatorio) Clave primaria de la tabla que corresponde a un número correlativo asignado al momento de grabar una fila.
ID_VIVIENDA Numérico de largo 10 (obligatorio) Identificación de la nueva vivienda que presentó el error el momento de insertar los datos.
MENSAJE Caracter de largo variable de largo 100 (obligatorio) Mensaje que detalle el error producido al insertar la nueva vivienda
---- TABLA VIVIENDA
CREATE TABLE VIVIENDA(
NUMERO INTEGER NOT NULL,
NUM_HABITACION INTEGER NOT NULL,
NUM_BAÑOS INTEGER NOT NULL,
MODELO VARCHAR2(150)NOT NULL,
PRECIO_UF NUMBER NOT NULL,
M2 NUMBER NOT NULL,
CODIGO INTEGER NOT NULL,
PROYECTO_NOMBRE VARCHAR2(150)NOT NULL,
CONSTRAINT PK_VIVIENDA PRIMARY KEY(NUMERO)
---DATOS VIVIENDA
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE) VALUES(2207,4,2,'castaños',3010,125,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(189,3,2,'san pedro',2970,101,300,'sol poniente');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(198,4,3,'almendro',3330,140,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(1501,2,1,'castaños',2345,75,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(345,2,2,'san pedro',2378,101,300,'sol poniente');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(199,4,3,'almendro',3145,120,200,'huertos pehuen');
El responsable de la logística de ventas de inmuebles quiere controlar de alguna forma el ingreso de las nuevas viviendas que están listas para la venta, usted quiere construir un procedimiento almacenado con un cursor que permita entregar una solución apropiada siguiendo especificaciones que se detallan:
• Simular la solicitud de los datos de la nueva vivienda través del uso de variables de sustitución.
• Controlar las excepciones de:
o Insertar de clave primaria duplicada (usar excepción definida por usuario)
o Insertar de un valor en una columna definida como clave foránea y que no existe como clave foránea.(usar excepción otro)
• Los errores se deben grabar en una tabla llamada errores con la siguiente estructura:
NOMBRE DE COLUMNA TIPO DE DATO DESCRIPCION
SQ_ERROR Numérico de largo 10 (obligatorio) Clave primaria de la tabla que corresponde a un número correlativo asignado al momento de grabar una fila.
ID_VIVIENDA Numérico de largo 10 (obligatorio) Identificación de la nueva vivienda que presentó el error el momento de insertar los datos.
MENSAJE Caracter de largo variable de largo 100 (obligatorio) Mensaje que detalle el error producido al insertar la nueva vivienda
---- TABLA VIVIENDA
CREATE TABLE VIVIENDA(
NUMERO INTEGER NOT NULL,
NUM_HABITACION INTEGER NOT NULL,
NUM_BAÑOS INTEGER NOT NULL,
MODELO VARCHAR2(150)NOT NULL,
PRECIO_UF NUMBER NOT NULL,
M2 NUMBER NOT NULL,
CODIGO INTEGER NOT NULL,
PROYECTO_NOMBRE VARCHAR2(150)NOT NULL,
CONSTRAINT PK_VIVIENDA PRIMARY KEY(NUMERO)
---DATOS VIVIENDA
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE) VALUES(2207,4,2,'castaños',3010,125,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(189,3,2,'san pedro',2970,101,300,'sol poniente');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(198,4,3,'almendro',3330,140,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(1501,2,1,'castaños',2345,75,200,'huertos pehuen');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(345,2,2,'san pedro',2378,101,300,'sol poniente');
INSERT INTO VIVIENDA(NUMERO,NUM_HABITACION,NUM_BAÑOS,MODELO,PRECIO_UF,M2,CODIGO,PROYECTO_NOMBRE)VALUES(199,4,3,'almendro',3145,120,200,'huertos pehuen');
Valora esta pregunta


0