Re: Cambiar valor de parametro en funcion

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>
Cc: postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cambiar valor de parametro en funcion
Date: 2005-10-05 20:20:56
Message-ID: c2d9e70e0510051320n2e91cf19i1ebf0b577c4fb02c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 10/5/05, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Hola Amigos:
>
> Tengo la siguiente pequeña funcion:
>
> CREATE OR REPLACE FUNCTION "public"."my_addoperacion"
> (p_oper_idprocesado integer, p_archi_id integer) RETURNS boolean AS
> $body$
> DECLARE
> v_forma numeric(1,0);
> BEGIN
> SELECT INTO v_forma oper_forma FROM operacion
> WHERE oper_id=p_oper_idprocesado;
>
> IF v_forma = 0 AND p_archi_id = 2 THEN
> p_oper_idprocesado = NULL;
> END IF;
>
> INSERT INTO "operacion" (oper_idprocesado,archi_id,)
> VALUES (p_oper_idprocesado,p_archi_id);
>
> RETURN TRUE;
> END;
>
> y al momento de compilar me sale el siguiente error:
>
> ERROR: "$1" is declared CONSTANT
>
> ¿ Significa que no puedo cambiar el valor de un parámetro dentro de la
> función tal como lo estoy haciendo?>

A menos que la definicion de CONSTANTE haya cambiado, asi parece

> ¿ Existe alguna solución ?

usar otra variable? por cierto es incorrecto esto: p_oper_idprocesado = NULL;
deberia ser: p_oper_idprocesado := NULL; aunque en una variable no en
una constante.

en la version 8.1 habran parametros de salida y de entrada/salida
imagino que alli si podras hacer lo que planeabas ahorita... pero no
estoy seguro

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcelo Retamal Vallejos 2005-10-05 21:25:05 Re: Poco espacio en el disco
Previous Message Jaime Casanova 2005-10-05 20:07:31 Re: Poco espacio en el disco