BASES DE DATOS ORACLE

http://www.redcientifica.com/oracle/


Administración y Optimización de Bases de Datos Oracle
Copyright 1999-2004 Manuel de la Herrán Gascón

Cursores SQL

Ejemplo de cursor SQL

--Este procedimiento contiene un cursor SQL que recorre y muestra 
--los numeros de la tabla NUMEROS que sean menores o iguales al parametro
CREATE OR REPLACE PROCEDURE recorreNumeros1 (
  pUb    IN     number DEFAULT 100
) is
  vNum  number;
  CURSOR cNumeros IS 
    SELECT numero FROM NUMEROS WHERE NUMEROS.numero <= pUb;
BEGIN
  OPEN cNumeros;
  loop
    FETCH cNumeros INTO vNum;
    exit when cNumeros%NOTFOUND;
    dbms_output.put_line('Número ' || vNum);
  end loop;
  CLOSE cNumeros;
END;
/
show errors
set serveroutput on;
delete from numeros;
EXEC insertaNumerosLbUbStep(1,10);
select * from numeros;
EXEC recorreNumeros1(5);
Otra forma de codificarlo es:
--Este procedimiento contiene un cursor SQL que recorre y muestra 
--los numeros de la tabla NUMEROS que sean menores o iguales al parametro
CREATE OR REPLACE PROCEDURE recorreNumeros2 (
  pUb    IN     number DEFAULT 100
) is
  CURSOR cNumeros IS 
    SELECT numero, texto FROM NUMEROS WHERE NUMEROS.numero <= pUb;
  regNum  cNumeros%ROWTYPE;
BEGIN
  OPEN cNumeros;
  loop
    FETCH cNumeros INTO regNum;
    exit when cNumeros%NOTFOUND;
    dbms_output.put_line('Número ' || regNum.numero || ' ' || regNum.texto);
  end loop;
  CLOSE cNumeros;
END;
/
show errors
set serveroutput on;
delete from numeros;
EXEC insertaNumerosLbUbStep(1,10);
select * from numeros;
EXEC recorreNumeros2(5);


Este curso esta incluido en el CD-ROM de REDcientífica. Solicítalo por correo haciendo click aquí. http://www.redcientifica.com/cdrom/


Enviar un e-mail a Manuel de la Herrán Gascón Buzón de contacto
© 1999-2004 Manuel de la Herrán Gascón
Volver a la página anteriorIr a la página principalIr a la página siguiente5/5