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

Problema sentencias dentro de Function

Estas en el tema de Problema sentencias dentro de Function en el foro de PostgreSQL en Foros del Web. Hola a todos: Me explico TABLA (antes)************************** ******************************************** nombre valor ----------- -------- work_doc 266 solicitud 317 FUNCION *********************************** *********************************************** CREATE OR REPLACE FUNCTION retorna_correlativo_tabla(nombre varchar, ...
  #1 (permalink)  
Antiguo 06/08/2007, 09:13
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Problema sentencias dentro de Function

Hola a todos:

Me explico


TABLA (antes)**************************
********************************************

nombre valor
----------- --------
work_doc 266
solicitud 317


FUNCION ***********************************
***********************************************

CREATE OR REPLACE FUNCTION retorna_correlativo_tabla(nombre varchar, OUT resultado int )
AS
$BODY$
BEGIN
if nombre
update correlativos
set valor=valor + 1
where nombre=nombre;

resultado:= (select valor from correlativos where nombre=nombre);
END;
$BODY$
LANGUAGE 'plpgsql'

LLAMADO A FUNCION ******************
**********************************************

select retorna_correlativo_tabla('solicitud');


TABLA (despues)**********************
********************************************

nombre valor
----------- --------
work_doc 267
solicitud 318


La funcion deberia recibir el parametro nombre, ubicar aquel valor en la tabla, aumentar en 1 el campo valor de ese registro y luego devolver aquel valor
aumentado. Pero al llamar a la funcion me ejecuta el update para todos los registros, como si no tomara la condicion entregada y fuera de eso me
arroja el siguiente mensaje de error: "PL/pgSQL function "retorna_correlativo_tabla" line 6 at assignment". Alguien me puede explicar el porque de esto.
PD: soy nuevo en Postgres.
  #2 (permalink)  
Antiguo 07/08/2007, 01:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Problema sentencias dentro de Function

Buenas,

Dos cosas:

1 - Pruebas con where nombre=$1 o cambia el nombre del parametro.
2 - Te falta el THEN despues del if y por supuesto cerrarlo con end if;

Un saludo
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 13:51.