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

select max - variables

Estas en el tema de select max - variables en el foro de Oracle en Foros del Web. Hola, soy nueva en esto... ojala puedan darme una mano... Tengo este procedimiento donde quiero pasarle como parametros el nombre de un campo y de ...
  #1 (permalink)  
Antiguo 18/02/2010, 08:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 3
Antigüedad: 14 años, 10 meses
Puntos: 0
Sonrisa select max - variables

Hola, soy nueva en esto... ojala puedan darme una mano...

Tengo este procedimiento donde quiero pasarle como parametros el nombre de un campo y de una tabla y me obtenga el valor maximo, de dicho campo. He escrito esto pero me sale el error:

ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed

Procedure:

PROCEDURE SP_MAX_VALOR(V_TABLA IN VARCHAR2, V_CAMPO IN VARCHAR2, oCursor OUT REFAPLI) is
v_sql varchar2(1000);
BEGIN
v_sql := 'SELECT MAX ' || V_CAMPO || 'FROM ' || V_TABLA;
OPEN oCursor FOR v_sql;


EXCEPTION
WHEN OTHERS THEN
NULL;
END;

Espero puedan ayudarme...
gracias
  #2 (permalink)  
Antiguo 22/02/2010, 10:27
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: select max - variables

Aqui esta:


PROCEDURE SP_MAX_VALOR(V_TABLA IN VARCHAR2, V_CAMPO IN VARCHAR2, oCursor OUT REFAPLI) is
v_sql varchar2(1000);
BEGIN
v_sql := 'SELECT MAX ('|| V_CAMPO ||')FROM ' || V_TABLA;
OPEN oCursor FOR v_sql USING V_CAMPO, V_TABLA;


EXCEPTION
WHEN OTHERS THEN
NULL;
END;


Ok te falto los parentesis del MAX eso era todo :) ahora no se si necesitabas utilizar el using, pero el error te daba por los parentesis. En rojo lo que daba el error.

Saludos y cualquier cosa pegas un grito,
  #3 (permalink)  
Antiguo 22/02/2010, 13:04
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: select max - variables

Y aqui lo tienes sin necesidad de usar un cursor


Código:
PROCEDURE SP_MAX_VALOR(V_TABLA IN VARCHAR2, 
                       V_CAMPO IN VARCHAR2,                       
                       oSalida OUT VARCHAR2) 
                       
IS

v_sql varchar2(1000);

BEGIN

v_sql := 'SELECT MAX ('|| V_CAMPO ||')FROM ' || V_TABLA;
EXECUTE IMMEDIATE v_sql INTO oSalida;

EXCEPTION

WHEN OTHERS THEN
NULL;

END;
Saludos,

Etiquetas: max, select, variables
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 01:12.