Bases de Datos - cursores implicitos

 
Vista:

cursores implicitos

Publicado por lodima (12 intervenciones) el 03/12/2008 18:06:40
hola!! necesito ayuda para hacerca de cursores implicitos.el problema es hacer lo mismo que hhace este cursor explicito pero debo hacerlo con cursores implicitos y ademas debo de meter un for o un loop para imprimir varios registros y con ello el nombre del persona con el maximo y mimimo clavetrabajador

create or replace procedure cargardatos is
cClavetrabajador personalx.clavetrabajador%type;
cNombre personalx.nombres%type;
cPaterno personalx.paterno%type;
cMaterno personalx.materno%type;
cSexo personalx.sexo%type;
cursor c_dato is
select clavetrabajador,nombres,paterno,materno,sexo from personalx;
begin
open c_dato;
fetch c_dato into cClavetrabajador,cNombre,cPaterno,cMaterno,cSexo;

dbms_output.put_line('nombre:'||cNombre||
' paterno:' ||cPaterno||
' materno:' ||cMaterno||
' sexo:'||cSexo);
close c_dato;

exception
when TOO_MANY_ROWS then
dbms_output.put_line('ERROR DE FILAS');
when NO_DATA_FOUND then
dbms_output.put_line('ERROR DE NINGUN DATO');
when others then
dbms_output.put_line('OTRO ERROR');
end;
/
begin
cargardatos;
end;


//alguien me puede ayudar a resolver mi problema
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cursores implicitos

Publicado por Franklin Gamboa (188 intervenciones) el 03/12/2008 20:02:59
Hola

Una de las bellezas de Oracle es poder usar los cursores implicitos, puedes hacerlos de dos formas:

1 - Usando un for para recorrer un cursor previamente declarado:

Declare

cursor c_dato is
select clavetrabajador,nombres,paterno,materno,sexo from personalx;

Begin

For rec in c_dato
Loop
dbms_output.put_line('nombre:'||rec.nombre||
' paterno:' ||rec.paterno||
' materno:' ||rec.materno||
' sexo:'||rec.sexo);
End loop;

end;

2 - Declaras el cursor en el mismo For loop:

For c1 in (select clavetrabajador,nombres,paterno,materno,sexo from personalx)
Loop
dbms_output.put_line('nombre:'||c1.nombre||
' paterno:' ||c1.paterno||
' materno:' ||c1.materno||
' sexo:'||c1.sexo);
End loop;

Si quieres leer sobre el tema, te adjunto un enlace. espero entiendas ingles para que no tengas problemas :-)

http://www.exforsys.com/tutorials/oracle-9i/oracle-cursors.html

Espero haberte ayudado.

Saludos,

Franklin Gamboa Morera
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar