Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problema con ejecucion de una funcion que devuelve un cursor

Estas en el tema de Problema con ejecucion de una funcion que devuelve un cursor en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/02/2009, 23:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 17 años, 2 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.
  #2 (permalink)  
Antiguo 02/03/2009, 01:46
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Problema con ejecucion de una funcion que devuelve un cursor

De entrada esto no me cuadra.

DBMS_OUTPUT.PUT_LINE('valores: '||c1||''||c2''||c3''||c4''||c5);

Y si pones los errores que te salen, mejor aún. La bola de cristal ya no me funciona como antes
  #3 (permalink)  
Antiguo 02/03/2009, 19:35
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Problema con ejecucion de una funcion que devuelve un cursor

Cita:
Iniciado por jc3000 Ver Mensaje
Y si pones los errores que te salen, mejor aún. La bola de cristal ya no me funciona como antes
Cita:
Iniciado por Cesdeveloper Ver Mensaje
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.
aunque sigo sin entender eso de compila bien salvo un warning, no era compila o no compila de plano?
__________________
Blogzote.com :-) Mi blog
  #4 (permalink)  
Antiguo 03/03/2009, 07:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Problema con ejecucion de una funcion que devuelve un cursor

Si compila bien, salen unos warnings como de que no devuelve un valor en la linea 18 p.e.
Cuando lo ejecuto con el segundo codigo que les pues(dond esta el DECLARE) me da errores de sintaxis creo que es en DBMS_OUTPUT.PUT_LINE('valores: '||c1||''||c2''||c3''||c4''||c5);. Creo que no estoy concatenando bien ya que si lo corro quitando esa linea no me da errores. Gracias.
  #5 (permalink)  
Antiguo 03/03/2009, 09:31
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Problema con ejecucion de una funcion que devuelve un cursor

Cita:
Iniciado por Cesdeveloper Ver Mensaje
da errores de sintaxis creo que es en DBMS_OUTPUT.PUT_LINE('valores: '||c1||''||c2''||c3''||c4''||c5);.

DBMS_OUTPUT.PUT_LINE('valores: '||c1||'-'||c2||'-'||c3||'-'||c4||'-'||c5);
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.