Novedades
Música
 
Imagen, foto o portada de Si Biri Bop de Nacho, Jerry Di (Canción, 2023)
Si Biri Bop de Nacho, Jerry Di (Canción, 2023)
Imagen, foto o portada de EVEREST de Ramón Vega (Canción, 2023)
EVEREST de Ramón Vega (Canción, 2023)
Imagen, foto o portada de La Luz de Luis Figueroa (Canción, 2023)
La Luz de Luis Figueroa (Canción, 2023)
Imagen, foto o portada de Cálmame de Sixto Rein (Canción, 2023)
Cálmame de Sixto Rein (Canción, 2023)
Imagen, foto o portada de Si Le Gritan Pu (feat. Chris Andrew) de Cauty, Junior Caldera, Razzer Buccarelli (Canción, 2023)
Si Le Gritan Pu (feat. Chris Andrew) de Cauty, Junior Caldera, Razzer Buccarelli (Canción, 2023)
Imagen, foto o portada de Helicóptero de El Alfa (Canción, 2023)
Helicóptero de El Alfa (Canción, 2023)
Imagen, foto o portada de Factura de Kobi Cantillo (Canción, 2023)
Factura de Kobi Cantillo (Canción, 2023)
Imagen, foto o portada de El Hombre de Elena Rose (Canción, 2023)
El Hombre de Elena Rose (Canción, 2023)
Imagen, foto o portada de REMIX EXCLUSIVO de Feid (Canción, 2023)
REMIX EXCLUSIVO de Feid (Canción, 2023)
Imagen, foto o portada de Tiempo Indefinido de Susana Cala (Canción, 2023)
Tiempo Indefinido de Susana Cala (Canción, 2023)
Imagen, foto o portada de Twerk de Hozwal, Nio García (Canción, 2023)
Twerk de Hozwal, Nio García (Canción, 2023)
Imagen, foto o portada de Terraza de Gustavo Elis, Jeeiph, Jimmix (Canción, 2023)
Terraza de Gustavo Elis, Jeeiph, Jimmix (Canción, 2023)
Imagen, foto o portada de En Bajita de Justin Quiles, Natti Natasha, Omar Courtz (Canción, 2023)
En Bajita de Justin Quiles, Natti Natasha, Omar Courtz (Canción, 2023)
Imagen, foto o portada de LA SANTA de Lola Indigo (Canción, 2023)
LA SANTA de Lola Indigo (Canción, 2023)
Imagen, foto o portada de En La Intimidad de Jowell & Randy, Nicky Jam (Canción, 2023)
En La Intimidad de Jowell & Randy, Nicky Jam (Canción, 2023)
Imagen, foto o portada de Cosas Locas 2.0 (feat. Juseph & Lucho RK) de Danny Romero, Saiko, Soge Culebra (Canción, 2023)
Cosas Locas 2.0 (feat. Juseph & Lucho RK) de Danny Romero, Saiko, Soge Culebra (Canción, 2023)
Imagen, foto o portada de X 1 BESO de Ryan Castro, De La Ghetto (Canción, 2023)
X 1 BESO de Ryan Castro, De La Ghetto (Canción, 2023)
Imagen, foto o portada de Cuánto Quieres (feat. Brray) de Genio, Justin Quiles, Juhn (Canción, 2023)
Cuánto Quieres (feat. Brray) de Genio, Justin Quiles, Juhn (Canción, 2023)
Imagen, foto o portada de Boom Boom Rumbun de Bulova (Canción, 2023)
Boom Boom Rumbun de Bulova (Canción, 2023)
Imagen, foto o portada de Llévame En Tus Sueños de Felipe Peláez, El Cartel Vallenato (Canción, 2023)
Llévame En Tus Sueños de Felipe Peláez, El Cartel Vallenato (Canción, 2023)
Imagen, foto o portada de LUNA de Jd Pantoja, Kim Loaiza (Canción, 2023)
LUNA de Jd Pantoja, Kim Loaiza (Canción, 2023)
Imagen, foto o portada de Arranca (feat. Omega) de Becky G, Omega (Canción, 2023)
Arranca (feat. Omega) de Becky G, Omega (Canción, 2023)
Imagen, foto o portada de Quién de Dayanara, Américo (Canción, 2023)
Quién de Dayanara, Américo (Canción, 2023)
Imagen, foto o portada de Olvidar de Angel22 (Canción, 2023)
Olvidar de Angel22 (Canción, 2023)
Imagen, foto o portada de No Me Controles de Rvssian, Danny Ocean, Sean Paul (Canción, 2023)
No Me Controles de Rvssian, Danny Ocean, Sean Paul (Canción, 2023)
Imagen, foto o portada de Anoche de ITZZA PRIMERA (Canción, 2023)
Anoche de ITZZA PRIMERA (Canción, 2023)
Imagen, foto o portada de lo que hay x aquí de Rels B (Canción, 2023)
lo que hay x aquí de Rels B (Canción, 2023)
Imagen, foto o portada de Bye de Juan Magán, Kidd Keo (Canción, 2023)
Bye de Juan Magán, Kidd Keo (Canción, 2023)
Imagen, foto o portada de AWCH de Angela Torres (Canción, 2023)
AWCH de Angela Torres (Canción, 2023)
Imagen, foto o portada de Friendzone de Marconi Impara, Alejo (Canción, 2023)
Friendzone de Marconi Impara, Alejo (Canción, 2023)
Imagen, foto o portada de NO voy a llorar :') de NICKI NICOLE (Canción, 2023)
NO voy a llorar :') de NICKI NICOLE (Canción, 2023)
Imagen, foto o portada de After Party de Kevin Roldán, Bryant Myers (Canción, 2023)
After Party de Kevin Roldán, Bryant Myers (Canción, 2023)
Imagen, foto o portada de La Reina de Maluma (Canción, 2023)
La Reina de Maluma (Canción, 2023)
Imagen, foto o portada de AGUARDIENTE de Myke Towers (Canción, 2023)
AGUARDIENTE de Myke Towers (Canción, 2023)
Imagen, foto o portada de La Difícil de Fanny Lu (Canción, 2023)
La Difícil de Fanny Lu (Canción, 2023)
Imagen, foto o portada de Deep Trip de Ir Sais (Canción, 2023)
Deep Trip de Ir Sais (Canción, 2023)
Imagen, foto o portada de Be Con Be de Noriel, Pailita (Canción, 2023)
Be Con Be de Noriel, Pailita (Canción, 2023)
Imagen, foto o portada de Tiempo Perdido de Lu Decker (Canción, 2023)
Tiempo Perdido de Lu Decker (Canción, 2023)
Imagen, foto o portada de Puesto Pal Dinero de JC La Nevula (Canción, 2023)
Puesto Pal Dinero de JC La Nevula (Canción, 2023)
Imagen, foto o portada de Como Agua de Rafa Pabön (Canción, 2023)
Como Agua de Rafa Pabön (Canción, 2023)
Imagen, foto o portada de For You de Jay Wheeler (Canción, 2023)
For You de Jay Wheeler (Canción, 2023)
Imagen, foto o portada de Gris de Juanes (Canción, 2023)
Gris de Juanes (Canción, 2023)
Imagen, foto o portada de Para No Verte Más de Thalia, Kenia Os (Canción, 2023)
Para No Verte Más de Thalia, Kenia Os (Canción, 2023)
Imagen, foto o portada de Ronca de Lunay (Canción, 2023)
Ronca de Lunay (Canción, 2023)
Imagen, foto o portada de Tu Recuerdo de Wisin, Emilia, Lyanno (Canción, 2023)
Tu Recuerdo de Wisin, Emilia, Lyanno (Canción, 2023)
Imagen, foto o portada de Más de Ti de Brytiago, Randy (Canción, 2023)
Más de Ti de Brytiago, Randy (Canción, 2023)
Imagen, foto o portada de Abajito de Lele Pons, Guaynaa (Canción, 2023)
Abajito de Lele Pons, Guaynaa (Canción, 2023)
Imagen, foto o portada de Mas Rica Que Ayer de Anuel AA, Mambo Kingz, Dj Luian (Canción, 2023)
Mas Rica Que Ayer de Anuel AA, Mambo Kingz, Dj Luian (Canción, 2023)
Internet
 
Marcas Y Productos
 
Leng. De Program.
 
Listas De Páginas
 
Lo+ Visto
Base De Datos
  1. Enorable
  2. Base De Datos
  3. Oracle
 
23/01/2020 |  vistas:

Función que muestra un progreso de las consultas con PLSQL de Oracle

Función que muestra un progreso de las consultas con PLSQL de OracleSe crea una función que permite mostrar o imprimir de manera básica un porcentaje de progreso relacionado con una consulta amplia de la información de la base de datos en Oracle.

Como si se tratase de una barra de progreso, esta función creada en PLSQL de Oracle muestra un número de porcentaje conforme se lee una porción de los datos o se consulta una cantidad de registros hasta completar la transacción.

En esta oportunidad traigo algunas sentencias para visualizar de una manera básica cómo podemos trabajar con una barra de progreso desde PLSQL, pero que de igual manera podría servir si se trabaja por ejemplo con Form Builder u otra aplicación de interfaz para el usuario conectado a nuestra base de datos.

La función es ideal para consultar grandes grupos de datos mediante un cursor de lectura.

Creando la función F_PROGRESS_QUERY

El subproceso requiere de tres valor mínimos para su correcto funcionamiento, los cuales son:

  • p_total_rows - hace referencia al total de registros que contiene la consulta
  • p_rownum - es el número de registro leído
  • p_portion - indica la porción de registros leídos para ofrecer el porcentaje

Si la función produce un error ésta arrojará un valor cero (0).

CREATE OR REPLACE FUNCTION F_PROGRESS_QUERY (p_total_rows IN NUMBER,
p_rownum IN NUMBER,
p_portion IN NUMBER DEFAULT 12)
RETURN VARCHAR2
IS
v_i NUMBER := p_rownum;
v_prc NUMBER := 0;
v_mod NUMBER := 0;
v_return VARCHAR2 (10) := NULL;
BEGIN
IF p_total_rows > 0 AND p_portion > 0
THEN
v_mod := p_portion;
IF MOD (v_i, v_mod) = 0 AND (v_i < p_total_rows OR v_i = p_total_rows)
THEN
v_prc := ROUND (v_i*100/p_total_rows);
v_return := v_prc || '%';
ELSE
IF v_i = 1
THEN
v_return := 1 || '%';
ELSIF v_i = p_total_rows
THEN
v_return := 100 || '%';
END IF;
END IF;
ELSE
v_return := 0;
END IF;
RETURN v_return;
EXCEPTION
WHEN OTHERS
THEN
RETURN 0;
END F_PROGRESS_QUERY;
/
Function created.

Ejecutar la función en un bloque anónimo

Para probar nuestra función he tomado los datos de la tabla employees del esquema hr.

DECLARE
v_result VARCHAR2 (30) := '';
v_total_emp NUMBER := 0;
v_i NUMBER := 0;
CURSOR cur_emp
IS
SELECT
employee_id,
first_name,
last_name,
salary
FROM hr.employees;
BEGIN
SELECT COUNT(*)
INTO v_total_emp
FROM hr.employees;
FOR rec IN cur_emp
LOOP
v_i := v_i + 1;
v_result := F_PROGRESS_QUERY (v_total_emp, v_i, 7);
DBMS_OUTPUT.PUT_LINE (v_result);
END LOOP;
END;
Statement processed.
1%
7%
13%
20%
26%
33%
39%
46%
52%
59%
65%
72%
79%
85%
92%
98%
100%

Si te ha servido de ayuda este código, entonces recuerda apoyar ésta y otras publicaciones relacionadas realizando una donación (Bitcoin) o mediante PayPal.

También puede verificar el resultado de esta explicación a través de Live SQL de Oracle.
Consulta Lo+ Top de Base De Datos
Todos los titulares en un solo lugar...