Está en la página 1de 3

BO

PROCEDURE ObtenerEstadisticasUsuario
(
inuCodUsuario IN mg_usuario.usuacons%type,
onuCantGan OUT number,
onuCantGolLo OUT number,
onuCantGolVi OUT number,
onuCantPer OUT number
);

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

PROCEDURE ObtenerEstadisticasUsuario
(
inuCodUsuario IN mg_usuario.usuacons%type,
onuCantGan OUT number,
onuCantGolLo OUT number,
onuCantGolVi OUT number,
onuCantPer OUT number
)
IS --declare
nuPivot mg_apuesta.apuecons%type;
tbApuestas MG_BCARApuestas.tytbApuestas;
nuAuxCantGan number;
nuAuxCantGolLo number;
nuAuxCantGolVi number;
nuAuxCantPer number;
BEGIN
UT_Trace.trace('BEGIN: [MG_BOARApuestas.ObtenerEstadisticasUsuario]');
nuPivot := -1;
onuCantGan := 0;
onuCantGolLo := 0;
onuCantGolVi := 0;
onuCantPer := 0;
loop
UT_Trace.Trace('nuPivot:'||nuPivot);

MG_BCARApuestas.ObtenerApuestasByBlock(nuPivot,inuCodUsuario,tbApuestas);

exit when tbApuestas.first IS null;

ProcesarApuestas(tbApuestas, nuAuxCantGan, nuAuxCantGolLo,


nuAuxCantGolVi, nuAuxCantPer);
onuCantGan := onuCantGan + nuAuxCantGan;
onuCantGolLo := onuCantGolLo + nuAuxCantGolLo;
onuCantGolVi := onuCantGolVi + nuAuxCantGolVi;
onuCantPer := onuCantPer + nuAuxCantPer;

nuPivot := tbApuestas(tbApuestas.last).apuecons;
END loop;
UT_Trace.trace('END: [MG_BOARApuestas.ObtenerEstadisticasUsuario]');
EXCEPTION
when LOGIN_DENIED or ex.CONTROLLED_ERROR or pkConstante.exERROR_LEVEL2 then
UT_Trace.Trace( 'Error: [MG_BOARApuestas.ObtenerEstadisticasUsuario]');
raise;
when OTHERS then
Errors.SetError;
UT_Trace.Trace( 'Error no controlado:
[MG_BOARApuestas.ObtenerEstadisticasUsuario]');
raise ex.CONTROLLED_ERROR;
END ObtenerEstadisticasUsuario;

BC

TYPE tytbApuestas IS TABLE OF mg_apuesta%rowtype INDEX BY binary_integer;

PROCEDURE ObtenerApuestasByBlock
(
inuPivot IN mg_apuesta.apuecons%type,
inuCodUsu IN mg_usuario.usuacons%type,
otbApuestas OUT tytbApuestas
);

body

PROCEDURE ObtenerApuestasByBlock
(
inuPivot IN mg_apuesta.apuecons%type,
inuCodUsu IN mg_usuario.usuacons%type,
otbApuestas OUT tytbApuestas
)
IS --declare
CURSOR cuApuestas
(
inuPivot mg_apuesta.apuecons%type,
inuCodUsu mg_usuario.usuacons%type
)
IS
SELECT *
FROM mg_apuesta /*+cuApuestas */
WHERE APUEUSUA = inuCodUsu
AND APUECONS > inuPivot
ORDER BY APUECONS ASC;
BEGIN
UT_Trace.trace('BEGIN: [MG_BCARApuestas.ObtenerApuestasByBlock]');
if(cuApuestas%ISOPEN) then
close cuApuestas;
END if;
OPEN cuApuestas(inuPivot, inuCodUsu);
FETCH cuApuestas bulk collect INTO otbApuestas limit cnuMAX_ROWS;
CLOSE cuApuestas;
UT_Trace.trace('END: [MG_BCARApuestas.ObtenerApuestasByBlock]');
EXCEPTION
when LOGIN_DENIED or ex.CONTROLLED_ERROR or pkConstante.exERROR_LEVEL2 then
UT_Trace.Trace( 'Error: [MG_BCARApuestas.ObtenerApuestasByBlock]');
raise;
when OTHERS then
Errors.SetError;
UT_Trace.Trace( 'Error no controlado:
[MG_BCARApuestas.ObtenerApuestasByBlock]');
raise ex.CONTROLLED_ERROR;
END ObtenerApuestasByBlock;

También podría gustarte