Oracle - Validar Clave Primera e insertar errores

 
Vista:

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');
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Validar Clave Primera e insertar errores

Publicado por Elvis (102 intervenciones) el 10/06/2016 18:17:17
si estas en ORACLE cambia la seentacia INTERGER por NUMBER(17,2) e intenta nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar