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

[SOLUCIONADO] Mostrar el resultado de una función

Estas en el tema de Mostrar el resultado de una función en el foro de PostgreSQL en Foros del Web. Hola, tengo problemas para mostrar por pantalla el resultado de una función! o sea tengo que "hacer una función que reciba cómo parámetro el código ...
  #1 (permalink)  
Antiguo 02/11/2013, 14:02
 
Fecha de Ingreso: junio-2013
Ubicación: Jujuy
Mensajes: 9
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Mostrar el resultado de una función

Hola, tengo problemas para mostrar por pantalla el resultado de una función!
o sea tengo que "hacer una función que reciba cómo parámetro el código de paciente y devuelva la cantidad de operaciones que al mismo se le realizaron."

Esta es la función creada:
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION CantOp_Pac (IN CódPac CHAR(3)) RETURNS INT AS
  2. $$
  3. DECLARE
  4.   CantOp INT;
  5. BEGIN
  6.   SELECT CantOp = SUM(NroOperac) FROM Detalle_Operación
  7.   WHERE NroOperac IN (SELECT NroOperac FROM Operación WHERE CódPaciente = CódPac);
  8.   RETURN CantOp;
  9. END;
  10. $$
  11. LANGUAGE plpgsql;

Según leí en varios manuales y tutoriales de Postgresql la sentencia para llamar a la función seria:
Código SQL:
Ver original
  1. SELECT CantOp_Pac('EE');

Al ejecutar esta sentencia me aparece este error:
Cita:
ERROR: la consulta no tiene un destino para los datos de resultado
HINT: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
CONTEXT: función PL/pgSQL cantop_pac(character) en la línea 5 en sentencia SQL
********** Error **********

ERROR: la consulta no tiene un destino para los datos de resultado
SQL state: 42601
Hint: Si quiere descartar los resultados de un SELECT, utilice PERFORM.
Context: función PL/pgSQL cantop_pac(character) en la línea 5 en sentencia SQL
Y es probado con otras funciones y me pasa lo mismo. Estoy usando Postregresql Version 9.3.1. Ojala puedan ayudarme.

Última edición por gnzsoloyo; 02/11/2013 a las 19:33 Razón: MAL ETIQUETADO
  #2 (permalink)  
Antiguo 05/11/2013, 07:30
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Mostrar el resultado de una función

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION CantOp_Pac (IN CodPac CHAR(3)) RETURNS INT AS
  2. $$
  3. DECLARE
  4.   CantOp INT;
  5. BEGIN
  6.   SELECT SUM(NroOperac) INTO CantOp FROM Detalle_Operación
  7.   WHERE NroOperac IN (SELECT NroOperac FROM Operación WHERE CódPaciente = CodPac);
  8.   RETURN CantOp;
  9. END;
  10. $$
  11. LANGUAGE plpgsql;

Tenias mal la asignación.
Otro consejo es no utilizar tildes en variables. Suelen presentar bastantes problemas.

Saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/11/2013, 19:31
 
Fecha de Ingreso: junio-2013
Ubicación: Jujuy
Mensajes: 9
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Mostrar el resultado de una función

Cita:
Iniciado por huesos52 Ver Mensaje
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION CantOp_Pac (IN CodPac CHAR(3)) RETURNS INT AS
  2. $$
  3. DECLARE
  4.   CantOp INT;
  5. BEGIN
  6.   SELECT SUM(NroOperac) INTO CantOp FROM Detalle_Operación
  7.   WHERE NroOperac IN (SELECT NroOperac FROM Operación WHERE CódPaciente = CodPac);
  8.   RETURN CantOp;
  9. END;
  10. $$
  11. LANGUAGE plpgsql;

Tenias mal la asignación.
Otro consejo es no utilizar tildes en variables. Suelen presentar bastantes problemas.

Saludos

Gracias huesos52 , fue de mucha ayuda!!

Etiquetas: Ninguno
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 11:56.