Hola Visitante

Autor Tema: Usar cursores en PL/SQL de Oracle  (Leído 639 veces)

Administación BDL

  • Administrator
  • *****
  • Mensajes: 66
    • Ver Perfil
Usar cursores en PL/SQL de Oracle
« en: Febrero 10, 2014, 04:01:37 pm »

Para los que seáis nuevos como yo en PL/SQL de Oracle y aún no sepáis por donde os vienen los tiros. Un cursor es una instrucción que sirve para crear una colección de datos “filtrada” dentro del propio cuerpo del Stored Procedure.


Fuera de un bloque PL/SQL haríamos una select y luego trataríamos los datos desde un lenguaje como PHP o C# haciendo costosas llamadas a base de datos enviando y recibiendo datos con lo que ello supone (problemas de rendimiento, sobrecarga innecesaria del servidor), sobretodo si la cantidad de datos a intercambiar es muy grande. Siempre que podamos tratar los datos en SQL que en otro tipos de código.



Aquí os dejo un bloque PL/SQL muy sencillo que ilustra a la perfección como usar un cursor.




declare

CURSOR miCursor is

    select campo1,campo2 from miTabla where campo3='mi filtro'; --Ejemplo trivial de select

begin

--Para recorrer los datos debemos hacer un for

   FOR row IN miCursor LOOP

        insert into tabla2 (campo1,campo2) VALUES(row.campo1,row.campo2);         -- Para todos los elementos de miCursor los insertaremos dentro de la tabla2.

   end loop;

end;


Ni que decir que si tenéis alguna duda o alguna sugerencia podéis preguntar.