Novedades
Música
 
Imagen, foto o portada de Que Te Perdone de Nanpa Básico, Nejo (Letra, Música)
Que Te Perdone de Nanpa Básico, Nejo (Letra, Música)
Imagen, foto o portada de Mi Complejo de Andry Kiddos (Letra, Música)
Mi Complejo de Andry Kiddos (Letra, Música)
Imagen, foto o portada de Contigo (feat. Kenzy) de Ren Kai (Letra, Música)
Contigo (feat. Kenzy) de Ren Kai (Letra, Música)
Imagen, foto o portada de Fundota de Bryant Myers (Letra, Música)
Fundota de Bryant Myers (Letra, Música)
Imagen, foto o portada de Hookiao de Lil Silvio & El Vega (Letra, Música)
Hookiao de Lil Silvio & El Vega (Letra, Música)
Imagen, foto o portada de Fenomenal de L-Gante, Noriel, Negro Dub (Letra, Música)
Fenomenal de L-Gante, Noriel, Negro Dub (Letra, Música)
Imagen, foto o portada de El Case de Hozwal (Letra, Música)
El Case de Hozwal (Letra, Música)
Imagen, foto o portada de Pecado Original de María José (Letra, Música)
Pecado Original de María José (Letra, Música)
Imagen, foto o portada de Agradecido de Don Omar (Letra, Música)
Agradecido de Don Omar (Letra, Música)
Imagen, foto o portada de Siempre Le Meto Bellako de Yozuel, Rvsell (Letra, Música)
Siempre Le Meto Bellako de Yozuel, Rvsell (Letra, Música)
Imagen, foto o portada de Gafas de Sol de Lérica (Letra, Música)
Gafas de Sol de Lérica (Letra, Música)
Imagen, foto o portada de Envidia de Neutro Shorty, Ovi (Letra, Música)
Envidia de Neutro Shorty, Ovi (Letra, Música)
Imagen, foto o portada de Ulala de Myke Towers, Daddy Yankee (Letra, Música)
Ulala de Myke Towers, Daddy Yankee (Letra, Música)
Imagen, foto o portada de VICTORIA de Izaak, Lenny Tavarez (Letra, Música)
VICTORIA de Izaak, Lenny Tavarez (Letra, Música)
Imagen, foto o portada de Frío de NICKI NICOLE (Letra, Música)
Frío de NICKI NICOLE (Letra, Música)
Imagen, foto o portada de Si Yo Me Muero de Anuel AA, Mvsis (Letra, Música)
Si Yo Me Muero de Anuel AA, Mvsis (Letra, Música)
Imagen, foto o portada de Eres de Manuel Carrasco (Letra, Música)
Eres de Manuel Carrasco (Letra, Música)
Imagen, foto o portada de Necio de Paulo Londra, Lit Killah (Letra, Música)
Necio de Paulo Londra, Lit Killah (Letra, Música)
Imagen, foto o portada de Freestyle de Darkiel, Nino Freestyle, Jon Z (Letra, Música)
Freestyle de Darkiel, Nino Freestyle, Jon Z (Letra, Música)
Imagen, foto o portada de Baila En La 42 de Nacho, Don Forty Five, Mercenario Musik (Letra, Música)
Baila En La 42 de Nacho, Don Forty Five, Mercenario Musik (Letra, Música)
Imagen, foto o portada de NOTEVI de Noreh, Jimmix (Letra, Música)
NOTEVI de Noreh, Jimmix (Letra, Música)
Imagen, foto o portada de Fiesta del Amor (feat. Fabianporti) de MarLo La Letra (Letra, Música)
Fiesta del Amor (feat. Fabianporti) de MarLo La Letra (Letra, Música)
Imagen, foto o portada de Desorden de Sharlene (Letra, Música)
Desorden de Sharlene (Letra, Música)
Imagen, foto o portada de Vaina Bacana de Martina La Peligrosa (Letra, Música)
Vaina Bacana de Martina La Peligrosa (Letra, Música)
Imagen, foto o portada de Mi Rival de Karen Méndez (Letra, Música)
Mi Rival de Karen Méndez (Letra, Música)
Imagen, foto o portada de Pa La Vuelta de ITZZA PRIMERA, Cauty (Letra, Música)
Pa La Vuelta de ITZZA PRIMERA, Cauty (Letra, Música)
Imagen, foto o portada de Bayamón de Elena Rose (Letra, Música)
Bayamón de Elena Rose (Letra, Música)
Imagen, foto o portada de Tu Cariñito de Olga Tañón (Letra, Música)
Tu Cariñito de Olga Tañón (Letra, Música)
Imagen, foto o portada de Judas de Pipe Calderón (Letra, Música)
Judas de Pipe Calderón (Letra, Música)
Imagen, foto o portada de Indestructible de Le Coco (Letra, Música)
Indestructible de Le Coco (Letra, Música)
Imagen, foto o portada de QUIÉN SABE de Joey Montana, El Zeta (Letra, Música)
QUIÉN SABE de Joey Montana, El Zeta (Letra, Música)
Imagen, foto o portada de Aroma de Brytiago, Lenny Tavárez, Beéle (Letra, Música)
Aroma de Brytiago, Lenny Tavárez, Beéle (Letra, Música)
Imagen, foto o portada de Sueños (feat. La Tinta) de AnnyBell, Sixto Rein, La Tinta (Letra, Música)
Sueños (feat. La Tinta) de AnnyBell, Sixto Rein, La Tinta (Letra, Música)
Imagen, foto o portada de Peru - Spanish Version (Remix) de Jay Maly (Letra, Música)
Peru - Spanish Version (Remix) de Jay Maly (Letra, Música)
Imagen, foto o portada de Quemando Money de Freitas (Letra, Música)
Quemando Money de Freitas (Letra, Música)
Imagen, foto o portada de Underground de Emilia (Letra, Música)
Underground de Emilia (Letra, Música)
Imagen, foto o portada de Sin Ti de Agus Padilla, Lauta, Migrantes (Letra, Música)
Sin Ti de Agus Padilla, Lauta, Migrantes (Letra, Música)
Imagen, foto o portada de Presidentes Muertos (feat. YOVNGCHIMI) de Casper Mágico, Anuel AA, Bryant Myers (Letra, Música)
Presidentes Muertos (feat. YOVNGCHIMI) de Casper Mágico, Anuel AA, Bryant Myers (Letra, Música)
Imagen, foto o portada de Intensa de Danny Romero (Letra, Música)
Intensa de Danny Romero (Letra, Música)
Imagen, foto o portada de La Clave de Luis Figueroa (Letra, Música)
La Clave de Luis Figueroa (Letra, Música)
Imagen, foto o portada de Delirio Y Tortura (feat. Luar La L) de Brray, Luar La L (Letra, Música)
Delirio Y Tortura (feat. Luar La L) de Brray, Luar La L (Letra, Música)
Imagen, foto o portada de Dubai de IAmChino, Rafa Pabön (Letra, Música)
Dubai de IAmChino, Rafa Pabön (Letra, Música)
Imagen, foto o portada de Mi Felicidad de j mena (Letra, Música)
Mi Felicidad de j mena (Letra, Música)
Imagen, foto o portada de Benzo de Messiah (Letra, Música)
Benzo de Messiah (Letra, Música)
Imagen, foto o portada de SOMOS NOSOTROS de REI (Letra, Música)
SOMOS NOSOTROS de REI (Letra, Música)
Imagen, foto o portada de Lágrimas de Champan de Gente De Zona, Dale Pututi, El Carli (Letra, Música)
Lágrimas de Champan de Gente De Zona, Dale Pututi, El Carli (Letra, Música)
Imagen, foto o portada de CAIRO de Karol G, Ovy On The Drums (Letra, Música)
CAIRO de Karol G, Ovy On The Drums (Letra, Música)
Imagen, foto o portada de Puntos Débiles de Omy de Oro, Brytiago (Letra, Música)
Puntos Débiles de Omy de Oro, Brytiago (Letra, Música)
Biografías
 
Leng. De Program.
 
Listas De Páginas
 
Lo+ Visto
Base De Datos
  1. Enorable
  2. Base De Datos
  3. Oracle
10
 
27/01/2021 |  vistas:

Paginación de datos con PL/SQL de Oracle

Paginación de datos con PL/SQL de Oracle¿Se puede realizar una paginación de datos con PL/SQL de Oracle? En este artículo te mostramos una manera de paginar los datos de una tabla con la creación de una función y desarrollo de un bloque anónimo en Oracle.

Como ya muchos saben la paginación es una de las maneras en la que podemos accesar a la información existente en una colección de datos de manera simplificada o reducida. Esto nos permite segmentar la información de acuerdo a un límite de registros, ayudando a mejorar el rendimiento de la consulta.

Para tratar de comprender mejor la idea supongamos que tenemos una tabla con 20 registros y queremos mostrar todos los registros pero de manera segmentada, cada 5 registros. En dicho caso, la paginación nos permitiría consultar los primeros 5 registros en una primera página, luego nos mostraría los siguientes 5 registros en una segunda página y así sucesivamente hasta llegar al final de lo registros que hay en la tabla.

Nota: Si este recurso te ha servido de ayuda recuerda que puedes apoyar mi trabajo realizando una contribución voluntaria a través de mi perfil de usuario de la página y/o puedes enviar tus comentarios a través del sistema de contacto.

Paginación con PL/SQL de Oracle

Lo primero que debemos hacer es crear una pequeña función que nos ayudará a manejar la paginación o segmentación de los registros de la tabla que vamos a consultar.
CREATE OR REPLACE FUNCTION F_PAGINATION(
P_TOTAL IN NUMBER,
P_PAGENUM IN NUMBER DEFAULT 0,
P_PAGEGROUP IN NUMBER DEFAULT 5)
RETURN VARCHAR2
IS
c_page CONSTANT NUMBER(1) := 1;

v_p NUMBER(3) := 0;
v_x NUMBER(3);
v_y NUMBER(3);
v_limit VARCHAR2(100) := '';
BEGIN

IF P_PAGENUM > 0 THEN
v_p := P_PAGENUM;
ELSE
v_p := c_page;
END IF;

IF v_p IS NOT NULL AND (v_p > 0 AND v_p <= CEIL(P_TOTAL / P_PAGEGROUP)) THEN
v_p := v_p;
ELSE
v_p := c_page;
END IF;

v_y := P_PAGEGROUP;
v_x := (v_p - c_page) * v_y;
v_limit := 'OFFSET ' || v_x || ' ROWS FETCH NEXT ' || v_y || ' ROWS ONLY';

IF v_limit IS NOT NULL THEN
RETURN v_limit;
END IF;

EXCEPTION
WHEN OTHERS
THEN
RETURN v_limit;
END F_PAGINATION;
/
Function created.

Una vez que tengamos nuestra función compilada en nuestra base de datos podemos probar el resultado de la misma a través de la siguiente sentencia SQL.
SELECT (SELECT COUNT(*) FROM HR.job_history) COUNT,
F_PAGINATION((SELECT COUNT(*) FROM HR.job_history),1,5)
FROM DUAL
Resultado:
COUNT F_PAGINATION((SELECT COUNT(*)FROM HR.JOB_HISTORY),1,5)
11 OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY
Por último debemos llevar la función a un bloque anónimo PL/SQL para trabajar con la paginación de los datos de una tabla.
DECLARE
TYPE jobHisCur IS REF CURSOR;
v_cursor jobHisCur;
his_record HR.job_history%ROWTYPE;
v_total NUMBER(5) := 1000;
v_sql VARCHAR2(1024);
v_limit VARCHAR2(100);
v_min NUMBER(1);
v_max NUMBER(2) := 5;
BEGIN

/*
* Puede acceder al total de registros
* y asignarlo a la variable v_total
SELECT COUNT(*)
INTO v_total
FROM HR.job_history;
*/

v_min := 1; -- Valor de la página a consultar que debe ser variable (1,2,3...n)

/*
* Paginación
* el valor de "v_min" se debe incrementar o disminuir en 1 para consultar los valores
* el valor de "v_max" indica la cantidad de registros a mostrar por página
*/

v_limit := F_PAGINATION(v_total,v_min,v_max);

-- DML
v_sql := 'SELECT * FROM HR.job_history ' || v_limit;

-- Abrir cursor
OPEN v_cursor FOR v_sql;

-- Recorrer cursor
LOOP
FETCH v_cursor INTO his_record;
EXIT WHEN v_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (
his_record.EMPLOYEE_ID
||' '||his_record.START_DATE
||' '||his_record.END_DATE
||' '||his_record.JOB_ID
||' '||his_record.DEPARTMENT_ID);
END LOOP;

-- Cerrar cursor
CLOSE v_cursor;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR: un error ha ocurrido');
END;
/
Statement processed.
Resultado de la Página 1:
102 13-JAN-01 24-JUL-06 IT_PROG 60
101 21-SEP-97 27-OCT-01 AC_ACCOUNT 110
101 28-OCT-01 15-MAR-05 AC_MGR 110
201 17-FEB-04 19-DEC-07 MK_REP 20
114 24-MAR-06 31-DEC-07 ST_CLERK 50

Puede comprobar los resultados de las sentencias a través de Live Sql de Oracle.
Consulta Lo+ Top de Base De Datos
Todos los titulares en un solo lugar...