Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2009, 23:36
Cesdeveloper
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con ejecucion de una funcion que devuelve un cursor

Buenas noches, les escribo urgente para lo sgte: Tengo el siguiente codigo de una funcion Oracle


create or replace PACKAGE BODY SMSHISTORICOS_PKG AS

FUNCTION FN_GEN_HISTORICAL_SMS(P_GSM IN HISTORIAL_SMSWEB.GSM_ORIGEN%TYPE,
P_NMENSAJE IN INTEGER)
RETURN MESSAGE_LIST_CURSOR_LOOKUP AS MESSAGE_LIST_CURSOR MESSAGE_LIST_CURSOR_LOOKUP;
BEGIN
OPEN MESSAGE_LIST_CURSOR FOR
SELECT FECHA_ENVIADO,HORA_ENVIADO,NU_MENSAJE,GSM_DESTINO, ESTATUS
FROM HISTORIAL_SMSWEB
WHERE gsm_origen=P_GSM
AND ROWNUM< P_NMENSAJE
ORDER BY fecha_enviado;

RETURN MESSAGE_LIST_CURSOR;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20001, P_GSM || ':$:' || SQLERRM, TRUE);
END FN_GEN_HISTORICAL_SMS;

END SMSHISTORICOS_PKG;

hasta ahi todo bonito

COn este lo ejecuto:



DECLARE
P_GSM VARCHAR2(72);
P_NMENSAJE NUMBER;
v_Return CESAR.SMSHISTORICOS_PKG.MESSAGE_LIST_CURSOR_LOOKUP ;
c1 date;
c2 date;
c3 number(4,0);
c4 varchar2(12);
c5 varchar2(10);

BEGIN
P_GSM := '04122333030';
P_NMENSAJE :=10;

v_Return := SMSHISTORICOS_PKG.FN_GEN_HISTORICAL_SMS(
P_GSM => P_GSM,
P_NMENSAJE => P_NMENSAJE
);
-- Modify the code to output the variable
-- DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);

loop

fetch v_Return into c1, c2,c3,c4,c5;
exit when v_Return%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('valores: '||c1||''||c2''||c3''||c4''||c5);


end loop;
close v_Return;
END;

Y esta es la tabla:

CREATE TABLE "SYSTEM"."HISTORIAL_SMSWEB"
( "GSM_ORIGEN" VARCHAR2(72 BYTE) NOT NULL ENABLE,
"FECHA_ENVIADO" DATE NOT NULL ENABLE,
"HORA_ENVIADO" DATE NOT NULL ENABLE,
"NU_MENSAJE" NUMBER(4,0) NOT NULL ENABLE,
"GSM_DESTINO" VARCHAR2(12 BYTE) NOT NULL ENABLE,
"ESTATUS" VARCHAR2(4 BYTE) NOT NULL ENABLE,
CONSTRAINT "HISTORIAL_SMSWEB_PK" PRIMARY KEY ("GSM_ORIGEN", "FECHA_ENVIADO", "HORA_ENVIADO")

Mi problem es que el codigo compila bien salvo un warning q me dice esto
Warning(4,3): PLW-05005: la función FN_GEN_HISTORICAL_SMS se devuelve sin valor en la línea 18
Eso no importa mucho, el gran problema es que a `pesar de que compila bien no me retorna mada si no unos errores de sintaxis que no encuentro, otro erros que los valores de retorno no coinciden, etc.SI puedes echarme una mano por favor es urgente.Saludos.