viernes, 10 de mayo de 2013

Crear TABLAS con RECORD en PL/SQL


SET SERVEROUTPUT ON
DECLARE
  TYPE TEMPLEADO IS RECORD(
  NUMEMPLEADO EMPLEADO.NUMEMPLEADO%TYPE,
  NOMBRE EMPLEADO.NOMBRE%TYPE,
  FECHA EMPLEADO.FECHNAC%TYPE
  );

  TYPE TEMPLEADOS IS TABLE OF TEMPLEADO
  INDEX BY  BINARY_INTEGER;

  VEMPLEADOS TEMPLEADOS;
BEGIN
 

/*=============================================================
HAY DOS FORMAS DE INGRESAR LOS DATOS EN BRUTO O CON UN SELECT.
=============================================================*/


   VEMPLEADOS(1).NUMEMPLEADO := 1;
   VEMPLEADOS(1).NOMBRE := 'MIGUEL';
   VEMPLEADOS(1).FECHA := '15/04/2013';
 
   VEMPLEADOS(2).NUMEMPLEADO := 2;
   VEMPLEADOS(2).NOMBRE := 'ENRIQUE';
   VEMPLEADOS(2).FECHA := '29/09/1985';
 
   SELECT NUMEMPLEADO,NOMBRE,FECHNAC INTO VEMPLEADOS(3)
   FROM EMPLEADO
   WHERE NUMEMPLEADO = 'SL21';
 
   SELECT NUMEMPLEADO,NOMBRE,FECHNAC INTO VEMPLEADOS(4)
   FROM EMPLEADO
   WHERE NUMEMPLEADO = 'SL22';
 
   SELECT NUMEMPLEADO,NOMBRE,FECHNAC INTO VEMPLEADOS(5)
   FROM EMPLEADO
   WHERE NUMEMPLEADO = 'SL40';


/*=============================================================
CREAMOS UN CICLO FOR PARA LISTAR LOS REGISTROS DE LA TABLA
=============================================================*/


   FOR I IN VEMPLEADOS.FIRST..VEMPLEADOS.LAST
   LOOP
    DBMS_OUTPUT.PUT_LINE('Numero Empleado: '||VEMPLEADOS(I).NUMEMPLEADO ||'    Nombre: '||VEMPLEADOS(I).NOMBRE ||' Fecha: '||VEMPLEADOS(I).FECHA);
   END LOOP;
END;

No hay comentarios.:

Publicar un comentario