-- Zona de declaración
declare
-- Declaramos el cursor sobre una consulta de una supuesta tabla usuarios.
cursor usuarios is
select *
from usuarios
where edad > 20;
-- Fin declaración. Comenzamos el procedimento:
begin
-- Recorremos el cursor con un bucle for - loop
for u in usuarios loop
dbms_output.put_line(u.apellidos||' '||u.nombre);
end loop;
-- Fin bucle
end;
-- Fin procedimiento
La función dbms_output.put_line muestra por pantalla el resultado en la variable "u" con la que recorremos el cursor. El operador || es de concatenación de cadenas.
Quizás te interese...
- Cómo crear objetos y tablas de objetos: Crear una tabla de objetos en Oracle
- Cómo crear paquetes en Oracle: Paquetes (Package) en Oracle
Hola,
ResponderEliminarpodrías empezar recordando cómo se crean procedimientos y funciones.
Saludos.
De acuerdo compañero, esa será la próxima entrada.
ResponderEliminarEXCELENTE APORTE AMIGO...
ResponderEliminarMuchas gracias!
Eliminarexiste una manera de craer un cursor vacio al cual le puedo añadir registros de una estructura ya dada?
ResponderEliminarExcelente aporte. Me sirvió de mucho para introducirme un poco más en el mundo de Oracle y la creación de paquetes.
ResponderEliminarGracias, me ha servido bastante.
ResponderEliminarse puede utilizar dbms_output.put_line para un cursor explicito? osea un fetch into ..
ResponderEliminarBuenas tarder necesito apoyo URGENTE!!!!
ResponderEliminartengo el cursor en SQL y quiero pasarlo a PL/SQL
declare @Periodo nvarchar(6),@Meses int,@FecNacIni datetime, @FecNacFin datetime
DECLARE Periodo CURSOR FOR
select distinct Periodo=convert(varchar(6),Fecha,112)
from DimFecha
where Año=@Año
order by convert(varchar(6),Fecha,112)
create table Temp_FechasNac_NiñosMeses_IP02 ---drop table Temp_FechasNac_NiñosMeses
( PeriodoT nvarchar(6) not null,FecIni datetime not null,FecFin datetime not null ,FecIniAcum datetime)
Open Periodo
FETCH NEXT FROM Periodo INTO @Periodo
WHILE @@FETCH_STATUS = 0
BEGIN
set @FecNacIni=DATEADD(month,@NacIni,@Periodo+'01')
set @FecNacFin=dateadd(month,@NacFin,dateadd(day,-29,dateadd(month,1,@Periodo+'01')))
insert into Temp_FechasNac_NiñosMeses_IP02
select PeriodoT=@periodo
,FecIni=@FecNacIni
,FecFin=@FecNacFin
,FecIniAcum =null
print @periodo
FETCH NEXT FROM Periodo INTO @Periodo
END
CLOSE Periodo
DEALLOCATE Periodo
-----Definir fecha de inicio para acumulados
declare @FecMin date
select @FecMin = MIN(FecIni) from Temp_FechasNac_NiñosMeses_IP02
update Temp_FechasNac_NiñosMeses_IP02
set FecIniAcum = @FecMin
Es para crear parametros de edad en niño para indicadores
Eliminar