viernes, 25 de marzo de 2011

Cursor

ya cabros ahi ke hacer un cursor

----------------------------------------------------------------------------------------

este es el codigo fuente

set serveroutput on;
declare
cursor Cursor2503 is
select rut,direccion from persona order by rut;

xRut number(10);
xDireccion varchar2(100);

begin
open Cursor2503;
loop
fetch Cursor2503 into xrut,xdireccion;
if Cursor2503%notfound then
dbms_output.put_line('no kedan registros');
exit;
end if;
dbms_output.put_line(xrut || ', ' ||xdireccion);

end loop;
close Cursor2503;
end;

----------------------------------------------------------------------------------

para que esto no se caiga debe tener alguna tabla con la cual trabajar asi ke les dare el codigo de la tabla


create table persona
(
rut number(10),
nombre varchar2(50),
direccion varchar2(100),
numero number(10)
);

insert into persona values(1,'as','as',1);
insert into persona values(2,'dasds','asdasd',2);
insert into persona values(3,'gherhb','erherh',3);
insert into persona values(4,'wegweg','wegweg',4);
insert into persona values(5,'5','5',5);
insert into persona values(6,'name6','dir6',6);
insert into persona values(7,'name7','dir7',7);
insert into persona values(8,'name8','dir8',8);
insert into persona values(9,'name9','dir9',9);
insert into persona values(10,'name10','dir10',10);

--------------------------------------------------------------------------------------------

Pagina con materia de pbd

Ya cabros les dejo una pagina con bastante material de pbd para que estudeen!

CLick Aqui!

Crear bloque anonimo y procedimiento

ahi ke krear un bloque anonimo para que imprima una suma en pl/sql y tambien un procedimiento.

-----------------------------------------------------------------------------------------------
-------------------------------Bloque anonimo--------------------------------------------
set serveroutput on;

declare

x int:=8;
y int :=15;
resultado int;

begin

resultado:= (x+y);
dbms_output.put_line('El resultado es '|| resultado);

end;

---------------------------------------------------------------------------------------
-----------------------------Procedimiento-------------------------------------------


create or replace procedure Suma3(x2 int, y2 int)
is
x int:=x2;
y int:=y2 ;
resultado int;

begin

resultado:= (x+y);
dbms_output.put_line('El resultado es '|| resultado);

end;

-------------------------------------------------------------------------------------------
---------------------Ahora para invocarlo-------------------------------------------------

set serveroutput on;
execute suma3(3,2);

-------------------------------------------------------------------------------------------

si nos damos cuenta la unica diferencia entre un procedimiento y un bloque anonimo es que uno keda guiardado para ser llamado en cualquier momento( procedimiento) y el otro no queda guardado.