Advertisement
fedebrundi

TABLAS DE MEMORIA

Apr 16th, 2014
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.94 KB | None | 0 0
  1. BULK COLLECT
  2.  
  3. DECLARE
  4.     TYPE regis IS RECORD (id employee.employee_id%TYPE,nomape VARCHAR2(159), sal employee.salary%TYPE);--CREO EL REGISTRO PARA DARLE FORMA A LA TABLA
  5.     TYPE tabla IS TABLE OF regis
  6.     INDEX BY BINARY_INTEGER;
  7.     vtab tabla;--SIEMPRE DECLARAR UNA VARIABLE CON EL NOMBRE DE LA TABLA PAR APODER MANEJARLA
  8.    
  9. BEGIN
  10.     SELECT employee_id,first_name||' '||last_name,salary
  11.     BULK COLLECT INTO vtab
  12.     FROM employee;
  13.     FOR w IN REVERSE vtab.FIRST..vtab.LAST--itera desde el principio de la tabla hasta el final
  14.     LOOP--EL REVERSE LO CARGA DE FINAL A PRINCIPIO
  15.     DBMS_OUTPUT.put_line(vtab(w).id||' '||vtab(w).nomape||' '||vtab(w).sal);--LA W ES PARA QUE RECORRA TODA LA TABLA
  16.     END LOOP;                                                               --ONDA EL FOR CUANDO CARGABA UNA LISTA
  17. END;
  18. ------------------------------------------------------------------------------------------------------------------------------
  19. SIN BULK COLLECT
  20. DECLARE
  21.     TYPE regis IS RECORD (id employee.employee_id%TYPE,nomape VARCHAR2(159), sal employee.salary%TYPE);--CREO EL REGISTRO PARA DARLE FORMA A LA TABLA
  22.     TYPE tabla IS TABLE OF regis
  23.     INDEX BY BINARY_INTEGER;
  24.     vtab tabla;--SIEMPRE DECLARAR UNA VARIABLE CON EL NOMBRE DE LA TABLA PAR APODER MANEJARLA
  25.     CURSOR cur IS
  26.     SELECT employee_id,first_name||' '||last_name emp, salary
  27.     FROM employee;
  28.     vindex BINARY_INTEGER;
  29.    
  30. BEGIN
  31.     FOR x IN cur LOOP
  32.       vtab(x.employee_id).nomape:=x.emp;--EL EMPLOYEE ID ES EL INDICE
  33.       vtab(x.employee_id).sal:=x.salary;
  34.     END LOOP;
  35.     --mostrar
  36.     vindex:=vtab.FIRST;
  37.     FOR w IN 1..vtab.COUNT LOOP
  38.       DBMS_OUTPUT.put_line(vtab(vindex).nomape||' '||vtab(vindex).sal);
  39.       vindex:=vtab.next(vindex);--ESO ES COMO EL ++ PARA QUE SE VAYA AUMENTANDO
  40.     END LOOP;
  41. END;
  42. ------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement