Inicio > ORACLE, PL/SQL > Examen Transversal Programacion de Base de Datos (OCA DEVELOP)

Examen Transversal Programacion de Base de Datos (OCA DEVELOP)

Hoy fue dia de examenes, este es el “Examen” de programacion de base de datos, una burla de examen comparado con el Certamen II de la misma asignatura =/

Pregunta 1

  • A) Construya una tabla f, con campos a numericos y b alfanumerico variable
  • CREATE TABLE f (
    	a NUMBER,
    	b VARCHAR(50)
    );
  • B) Inserte 5 valores en f con los numeros 5 al 9 y los nombres de los numeros en texto
  • BEGIN
    	FOR i IN 5..9 LOOP
    		IF i = 5 THEN
    			INSERT INTO f VALUES(i,'Cinco');
    		ELSIF i = 6 THEN
    			INSERT INTO f VALUES(i,'Seis');
    		ELSIF i = 7 THEN
    			INSERT INTO f VALUES(i,'Siete');
    		ELSIF i = 8 THEN
    			INSERT INTO f VALUES(i,'Ocho');
    		ELSIF i = 9 THEN
    			INSERT INTO f VALUES(i,'Nueve');
    		END IF;
    
    	END LOOP;
    END;
    /
  • C) Construya un procedimiento en PL/SQL que seleccione los registros de la tabla (utilizando el esquema FOR UPDATE) y modifique los numeros cuya palabra tenga un largo de 5, dejando el valor al cuadrado
  • CREATE OR REPLACE PROCEDURE actualizaTodos
    IS
    	CURSOR datos_cursor IS
    		SELECT * FROM f
    		FOR UPDATE OF a;
    BEGIN
    	FOR iterador IN datos_cursor LOOP
    		IF LENGTH(iterador.b) = 5 THEN
    			UPDATE f
    			SET a = (iterador.a * iterador.a),
    				b = '('||iterador.b||')^2'
    			WHERE CURRENT OF datos_cursor;
    		END IF;
    	END LOOP;
    END;
    /

    Pregunta 2

  • A) Considere la tabla PRODUCTOS(CO_PRODUCTO,NO_PRODUCTO) que tiene el código y nombre del producto.
  • CREATE TABLE PRODUCTOS (
    	CO_PRODUCTO NUMBER,
    	NO_PRODUCTO VARCHAR(100),
    	CONSTRAINT pk_productos_CO_PRODUCTO PRIMARY KEY(CO_PRODUCTO)
    );
  • B) Considere la tabla PRECIOS_PRODUCTOS(CO_PRODUCTO,PRECIO,FECHA_ACTUALIZACION).
  • CREATE TABLE PRECIOS_PRODUCTOS (
    	CO_PRODUCTO NUMBER,
    	PRECIO NUMBER,
    	FECHA_ACTUALIZACION DATE,
    	CONSTRAINT fk_PP_CO_PRODUCTO FOREIGN KEY(CO_PRODUCTO) REFERENCES PRODUCTOS(CO_PRODUCTO)
    );
  • C) Construya un TRIGGER que cada vez que se inserte un registro en PRODUCTOS inserte un registro en PRECIOS_PRODUCTOS con un valor inicial de 100.
  • CREATE OR REPLACE TRIGGER trigg_precioAlProducto
    AFTER INSERT ON PRODUCTOS
    FOR EACH ROW
    BEGIN
    	INSERT INTO PRECIOS_PRODUCTOS (CO_PRODUCTO,PRECIO,FECHA_ACTUALIZACION)
    	VALUES(:NEW.CO_PRODUCTO,100,SYSDATE);
    END;
    /
  • D) Realice un ejemplo de uso del TRIGGER
  • /* Creo una sequencia */
    CREATE SEQUENCE seq_productos
    				MINVALUE 1
    				START WITH 1
    				INCREMENT BY 1;
    /* Ingreso algunos datos */
    INSERT INTO PRODUCTOS VALUES(seq_productos.NEXTVAL,'Pantalon');
    INSERT INTO PRODUCTOS VALUES(seq_productos.NEXTVAL,'Zapatos');
    INSERT INTO PRODUCTOS VALUES(seq_productos.NEXTVAL,'Comida');
    /* Selecciono los datos */
    SELECT 	PRODUCTOS.CO_PRODUCTO,
    		PRODUCTOS.NO_PRODUCTO,
    		PRECIOS_PRODUCTOS.PRECIO,
    		PRECIOS_PRODUCTOS.FECHA_ACTUALIZACION
    FROM PRODUCTOS  INNER JOIN PRECIOS_PRODUCTOS ON PRODUCTOS.CO_PRODUCTO = PRECIOS_PRODUCTOS.CO_PRODUCTO;

    Ese fue el ‘examen’… parece que lo hicieron a ultima hora y a la mala XD

    Saludos!.

    Categorías:ORACLE, PL/SQL Etiquetas: , , , ,
    1. Alejandro
      octubre 16, 2011 a las 1:39 pm

      Se agradece :D

    1. No trackbacks yet.

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    A %d blogueros les gusta esto: